একক কমান্ড ব্যবহার করে vi সম্পাদক থেকে 100 টি লাইন মুছুন


33

আমি উবুন্টু ব্যবহার করছি এবং viসম্পাদক থেকে সমস্ত 100 লাইন মুছে ফেলার চেষ্টা করছি তবে আমি এক আদেশে এটি করার সাক্ষাত্কারের প্রশ্ন পেয়েছি।


ষষ্ঠ সমাধান নয়, কমান্ড echo -n > <file>লাইন থেকে: একটি ফাইল থেকে সমস্ত লাইন সরিয়ে দেয় (আসলে "" দিয়ে কেবল ফাইলটি ওভাররাইট করে)।
Azz

3
@ ডিয়ার এর জন্য মোটেও ব্যবহার echoকরার দরকার নেই ; > $fileঠিক কাজ করে।
একটি সিভিএন

4
viএকটি সাক্ষাত্কারে সম্পর্কে প্রশ্ন জিজ্ঞাসা, এটি কী ধরনের সংস্থা ?
একটি সিভিএন

2
এই প্রশ্নের সহজেই vi এর একটি প্রাথমিক জ্ঞানের উত্তর দেওয়া হয়। উইম ইনস্টল করা কম্পিউটারে (উবুন্টুতে আমি vim-gtkপ্যাকেজটি সুপারিশ করব , যেহেতু এটি আপনাকে ভিআইএমের মধ্যে এক্সক্লিপবোর্ডে অ্যাক্সেস দেয়), বেসিকগুলির vimtutorইন্টারেক্টিভ টিউটোরিয়াল পেতে কমান্ড লাইনে টাইপ করুন (ভিমের মধ্যে নয়)। এটি আধ ঘন্টা বেশি সময় গ্রহণ করা উচিত নয়, এবং এটি vi / vim ব্যবহারের সেরা স্টার্টার গাইড যা আপনি সম্ভবত খুঁজে পেতে পারেন।
অরিসুপ

1
@ মাইকেলKjörling আমি কল্পনা করতে পারি এটি যদি একটি সাক্ষাত্কারে আসে তবে যদি আবেদনকারী হয় হয় vi(মৌখিকভাবে বা পুনঃসূচনা দ্বারা) এর পূর্বে অভিজ্ঞতার কথা উল্লেখ করে থাকে বা যদি প্রশ্নটি আগে লেখা থাকে, "ঠিক আছে, সিসাদমিন হিসাবে আপনাকে অবশ্যই কমান্ড লাইন সম্পাদকদের কিছু জানা উচিত, vi" আপনি ব্যবহার করেছেন ?"
ওয়াইল্ডকার্ড

উত্তর:


62

সাধারণ মোডে, করুন

100dd

ddবর্তমান লাইন মুছে ফেলা হয়। এই কমান্ডটি প্রিফ্যাক করার 100কারণে এটি 100 বার পুনরাবৃত্তি হয়।

যদি viপ্রয়োগের উপর নির্ভর করে বর্তমান লাইন থেকে শুরু করে যদি ফাইলটিতে 100 টিরও কম লাইন থাকে তবে এটি হয় কোনওটি মুছতে ব্যর্থ হবে বা যতগুলি রয়েছে মুছে ফেলতে ব্যর্থ হবে। ক্ষেত্রে vim, এটি cpউফ compatibleবিকল্পটি চালু আছে কিনা তা নির্ভর করে ।


ভুল আনসার এটি কেবল বর্তমান লাইনটি মুছে ফেলছে
মেহর মেহতা

আমি একবারে একটি কমান্ড ব্যবহার করে 100 টি লাইন মুছতে চাই
মেয়র মেহতা

13
100ddসঠিক উত্তর। আমি ভাবছি আপনি কি করছেন
ott--

1
@ ময়ূরমহতা জানেন না কোন সংস্থা এই জাতীয় প্রশ্ন জিজ্ঞাসা করছে, এবং তারা উত্তর হিসাবে কী প্রত্যাশা করছে তা জানে না। তবে যে কোনও নবজাতক ষষ্ঠ ব্যবহারকারী জানবেন যে 100 ডিডি সঠিক উত্তর।
মুনিম

1
@vgoff আমি জানি না .. যদি তারা আপনার বেসিক ভিম দক্ষতা পরীক্ষা করার জন্য কোনও সাধারণ সমাধানের সন্ধান না করে, তবে ইন্টারভিউওয়াদের স্ট্যাম্প করা কেবল একটি কৌশল প্রশ্ন। আমি বলব 100 ডিডি উত্তর। যদি সাক্ষাত্কারকারী জিজ্ঞাসা করে থাকে যে "যদি ফাইলটি বর্তমান কার্সার থেকে 100 টিরও কম লাইন রাখে তবে কী হবে?", আমি উত্তর দেব: "কমান্ডটি বর্তমান কার্সার থেকে এটি যা মুছে ফেলতে পারে তা মুছে দেয়।" এটি পুরোপুরি যুক্তিসঙ্গত। যদি সাক্ষাত্কারটি স্পষ্ট না করে তবে কার্সারটি প্রথম লাইনে থাকবে না কেন? আমি এই জাতীয় কৌশল প্রশ্ন ঘৃণা করি।
মুনিম

44
  1. বর্তমানের (100) থেকে 100 টি লাইন মুছে ফেলুন

    • পুনরায় ডিডি করুন (বর্তমান লাইন মুছুন) 100 বার:

      100dd
      
    • বর্তমান লাইন থেকে 99 লাইন এগিয়ে মুছে দিন

      d99j
      
  2. বর্তমান লাইন থেকে (সহ) 100 টি রেখা মুছুন

    d99k
    
  3. লাইন সংখ্যা দ্বারা একটি নির্দিষ্ট পরিসরে লাইন মুছুন

    :1,100d
    
  4. বর্তমান লাইন দিয়ে শুরু করে একটি রেঞ্জের রেখাগুলি মুছুন

    :.,.+99d
    

ইত্যাদি ইত্যাদি


2
সংখ্যা 4 101th (0 টি + 100) লাইন পর্যন্ত বর্তমান লাইন (0) মুছে ফেলবে, অত: পর 101 পরিবর্তে লাইন জিজ্ঞাসা 100 ব্যবহার করে দেখুন:.,+99d
অলিভিয়ের Dulac

ড্রাট, এবং আমি আন্দোলনগুলি সঠিক পেয়েছি! ধন্যবাদ।
বেহুদা

১০০ ডিডি আমার পক্ষে কোনওভাবেই কাজ করেনি - তবে উপরে # 4 সোলারিস 10 এর অধীনে আমার পক্ষে ভাল কাজ করে
ডেমিশিপ

8

যদি ফাইলের সমস্ত লাইন মুছতে হয়, এই vi কমান্ড মুছে ফেলার সীমাটি নির্দিষ্ট করে:

:1,$d

1প্রথম লাইনটি $চিহ্নিত করে এবং সর্বশেষ রেখাকে বোঝায়


বা :%d (":" প্রসঙ্গে, ":% ..." শর্টকাট ": 1, $ ..." এর জন্য)
অলিভিয়ার ডুলাক

এছাড়াও দুর্দান্ত: d Gকীগুলি & rarr; আসল [যেমন শীর্ষ রেখা] থেকে নীচের লাইনে সমস্ত বিষয়বস্তু মেরে
ফেলুন

3

আপনি একটি ফাইলের সমস্ত লাইন মুছতে চান? এর সাথে ফাইলটি খুলুন vi। প্রথম লাইনের শুরুতে - কার্সারের ডিফল্ট অবস্থান যখন আপনি কেবল ফাইলটি খুলবেন - Escতারপরে টিপুন dG

কেবল লক্ষ্য করার জন্য, ক্রিয়াটি dমুছে ফেলা এবং Gফাইলের শেষ লাইনটি নির্দেশ করে। সুতরাং, আপনি যে কোনও লাইনে dGটিপানোর সময় এটি বর্তমান লাইন থেকে শুরু হওয়া শেষ পর্যন্ত সমস্ত লাইন মুছে ফেলবে।

আপনি কি জানেন, তাহলে পরপর লাইন মুছে ফেলতে - বলে, লাইন 101 থেকে 200 - টাইপ নিম্নলিখিত কী সিকোয়েন্স মধ্যে: Esc:101,200d


যদি আপনি সবেমাত্র ফাইলটি খোলেন এবং ফাইলটির শুরুতে থাকেন তবে এস্কেপ টিপতে হবে না। আপনি স্বয়ংক্রিয়ভাবে (ডিফল্টরূপে) সাধারণ মোডে রয়েছেন।
vgoff

3

আপনি ফাইলটিতে যেখানেই থাকুন না কেন, আপনি এটি করতে পারেন ggdG

:%dকম কী চাপলে আরও ভাল করতে হবে। ঠিক আছে, উপরের তুলনায় আরও দুটি কী টিপুন shiftএবং enterকীগুলি গণনা করা হচ্ছে ।

এর মতো কিছু করা 100ddকেবলমাত্র যেখানে থেকে আপনি 100 টি লাইন মুছে ফেলবেন এবং এটি আপনার বর্তমান লাইন অবস্থানের উপর নির্ভর করে ফাইল থেকে সমস্ত লাইন মুছবে না।


0

ইস্ক এন ডিডি। এন হ'ল লাইন সংখ্যা এবং বর্তমান লাইন সহ। "ইস্ক" বোতাম টিপুন, তারপরে "এন" এবং তারপরে "ডিডি" চাপুন। আপনার বোঝার উন্নতি করতে


এখানে পালানোর দরকার কী
প্রভাটি_যাদভ

এই উত্তরটি স্বীকৃত উত্তরের মতো।
কুসালানন্দ

আপনি যদি সন্নিবেশ মোডে থাকেন তবেই এস্কেপ।
রিদা আবিদ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.