লাইন ব্রেক ছাড়া আমি কি একটি সম্পূর্ণ লাইন মুছতে পারি?


33

আমার পক্ষে ভিমে মোটামুটি প্রচলিত একটি অপারেশন, যেহেতু আমি বাধ্যতামূলক-আবেশী এবং আমার ফাইলগুলি হোয়াইটস্পেস মুক্ত রাখতে পছন্দ করি তা হল একটি সম্পূর্ণ লাইনের বিষয়বস্তু মুছে ফেলা , তবে লাইনটি নিজেই নয় (লাইন ব্রেক নয়)।

এটি করার জন্য কি কোনও অন্তর্নির্মিত ভিম উপায় আছে? সম্ভবত একটি d<movement command>অপারেশন?

এখনও অবধি, আমার কাছে সেরাটি (প্রশ্নে রয়েছে) 0d$। আরও কি দ্রুত উপায় আছে?


2
ম্যানুয়ালি হোয়াইটস্পেস ট্রিমিংয়ের বিকল্প হিসাবে, আপনি ভিআইএম-বেটার-হোয়াইটস্পেসের মতো প্লাগইন ব্যবহার করতে পারেন , যা হোয়াইটস্পেসের পিছনে হাইলাইট করে, এটিকে একবারে মুছে ফেলার জন্য একটি আদেশ সরবরাহ করে, এমনকি সংরক্ষণে এটি স্বয়ংক্রিয়ভাবেও করতে পারে।
deltab


3
এমনকি কোনও প্লাগইন ছাড়াই আপনি অনুসন্ধান এবং প্রতিস্থাপন ব্যবহার করে বিশ্বব্যাপী ট্রেলিং হোয়াইটস্পেস মুছতে পারেন, যেমন:%s/\s*$//
কাইল স্ট্র্যান্ড

উত্তর:


34

আপনি এটি ব্যবহার করতে পারেন 0Dলাইনের প্রথম অক্ষরে গিয়ে লাইনের শেষ হওয়া পর্যন্ত মুছবেন। মনে রাখবেন যে আপনি ^Dযদি পূর্ববর্তী কোনও সাদা স্থান ছেড়ে যেতে চান তবে আপনি তা ব্যবহার করতে পারেন use এছাড়াও, এই অপারেশনগুলি ব্যবহার করে পুনরাবৃত্তি করা যাবে না .। যদি আপনি কোনও অপারেশন চান যা .কমান্ডের সাথে পুনরাবৃত্তি করা যায় তবে ডেভিড লর্ডের উত্তরটি দেখুন।

সহায়তা বিষয়গুলি:

  • :help 0
  • :help D
  • :help ^

4
এটি সরাসরি, বিন্দুতে এবং (সম্ভবত) সর্বাধিকতম কী-স্ট্রোকের সময়, এটি .কমান্ডটি ব্যবহার করে পুনরাবৃত্তিযোগ্য নয় । যে কারণে, আমি মনে করি cc<Esc>বা S<Esc>আপনি যদি পুনরাবৃত্তি সম্পর্কে যত্নবান হন তবে এটি আরও আকর্ষণীয়।
tommcdo

ঐটা সত্য. তবে আপনি এটিকে ম্যাক্রো হিসাবে রেকর্ড করতে পারেন এবং এটি ব্যবহার করে পুনরাবৃত্তি করতে পারেন .
চিরসবুজ

সাধারণভাবে, ম্যাক্রোগুলির সাথে পুনরাবৃত্তি করা যায় না .। তারা এমনভাবে কাজ করে যেমন এই কী-স্ট্রোকগুলি ইন্টারেক্টিভভাবে প্রবেশ করা হয়েছিল, তাই স্বতন্ত্র কমান্ডগুলি পৃথকভাবে চিকিত্সা করা হয়। ব্যবহারটি .ম্যাক্রোতে কেবলমাত্র শেষ কমান্ডটির পুনরাবৃত্তি করবে।
tommcdo

আমি এটি পরীক্ষা করেছি এবং এটি আমার পক্ষে কাজ করে না। যদি ম্যাক্রোটি রেকর্ড করে রাখে তবে এটি ব্যবহার করে ব্যবহার করুন @{reg}, আপনি .পরে এটির সাথে পুনরাবৃত্তি করতে পারেন ।
চিরসবুজ

1
আপনি কেবল ম্যাক্রোর শেষ কমান্ডটি পুনরাবৃত্তি করছেন যা এটি D। একটি 0Dক্রিয়াকলাপের পরে , আপনার কার্সারটি কলাম 0 এ থাকবে। কার্সারটিকে লাইনে এগিয়ে যাওয়ার এবং টাইপ করার চেষ্টা করুন .- আপনি দেখতে পাবেন এটি কেবল পুনরাবৃত্তি করে D
tommcdo

20

cc <Esc>আপনি যা চান তেমন করবে তবে এটির চেয়ে বেশি কী-স্ট্রোক 0D। আপনি যদি সেই লাইনে কিছু পরে ccরাখতে চান তবে সেরা হতে পারে।


2
আপনি যদি শিফ্টটি অন্তর্ভুক্ত করেন তবে এটি একই এবং সম্ভবত সহজ।
হলোয়ে

4
যদিও এটি "পরিষ্কার" সমাধান নয়, এর একটি সুবিধা রয়েছে: এটি হ'ল একটি ক্রিয়া, এবং তাই এটি .আদেশের সাথে পুনরাবৃত্তিযোগ্য । বিপরীতে, 0D(নির্বাচিত উত্তরে প্রস্তাবিত হিসাবে) দুটি ক্রিয়া: 0গতি এবং Dআদেশ।
tommcdo

@Trengot এটি সম্ভবত তুলনায় অনেক সহজ 0Dআমার জন্য যেহেতু আমি করেছি jkম্যাপ <Esc>, আমার vimrc যাতে আমার হাত এমনকি বাড়িতে সারি যেতে হবে না।
চিরসবুজ

1
@Nobilis দেখুন উত্তর: S"এর জন্য সমার্থক হিসেবে নথিভুক্ত করা cc"
Volker সিয়েগেল

14

Sএবং তারপরে Ctrl+Cবা Escঠিক একই ফাংশনটি সম্পাদন করে বলে মনে হচ্ছে।

এটি .একক ক্রিয়া গঠনের সাথে সাথে এটি পুনরাবৃত্তি হতে পারে ।


2
আমি কেবল এটিকে উত্তর হিসাবে যুক্ত করার কথা ভাবছিলাম এবং তারপরে আপনার দেখেছিলাম
15:25 এ স্বেলে দেখুন

7

0Dসম্ভবত আপনি কি চান এটি লাইনটি (এবং কার্সারের আগে কোনও অক্ষর) জায়গায় রেখে যাওয়ার পরে এটি কার্সর থেকে রেখার শেষ পর্যন্ত মুছবে।


এই উত্তরটি এক বছরের পুরনো, এটি লক্ষণীয় যে লাইনটির শুরু থেকে0D মুছে ফেলা হবে , কার্সারের অবস্থান থেকে নয়
FliiFe

4

আমি সাধারণত ব্যবহার ddOddবর্তমান লাইনটি মুছতে এবং Oএকটি নতুন লাইন যুক্ত করতে (এটি একটি মূলধন ও)

এটি 3 টি কীস্ট্রোক, তবে ddকেবল দেড় থেকে দেড় হিসাবে গণনা করা হয় এবং আমি এর Oচেয়ে টাইপ করা সহজ মনে করি $

এটি 0Dসমাধান থেকে পৃথক যে এটি স্বয়ংক্রিয়-প্রবর্তন করে, উদাহরণস্বরূপ এই কোড সহ ( !···একটি ট্যাবটি কোথায় এবং and কার্সার:

def asd():
!···if foo:
!···!···foo()█
!···!···foobar()

0D আপনাকে ছেড়ে চলে যাবে:

def asd():
!···if foo:
█
!···!···foobar()

এবং ddOআপনাকে ছেড়ে চলে যাবে:

def asd():
!···if foo:
!···!···█
!···!···foobar()

এবং আপনি যদি এর <Esc>পরে অবিলম্বে টিপেন, ভিমের স্বতঃ-ইন্ডেন্টেশনটি সরিয়ে ফেলা উচিত, যাতে আপনার সাথে একই থাকে 0D

কোনও 'সঠিক' উপায় নেই, এটি নির্ভর করবে আপনি ঠিক কী করতে চাইবেন। আমি পছন্দ করি ddOকারণ এটি আরও নমনীয়, এবং এটি "আমার আঙ্গুলগুলিতে" :-)


2
^Dশ্বেত স্পেস একা ছেড়ে দেবে।
চিরসবুজ

যেহেতু Oআপনাকে sertোকানো মোডে ফেলে দেয় তাই ccএটি স্বয়ংক্রিয়-ইন্ডেন্টেশন ব্যতীত সমতুল্য .... যদি না আপনার লাইনটি ইতিমধ্যে স্বতঃ-ইনডেন্ট থাকে।
কাইল স্ট্র্যান্ড

এটি ফাইলের শেষ লাইনে আলাদা আচরণ করবে।
tommcdo

0

এবং সেই এক মূল্যবান কী স্ট্রোকটি সংরক্ষণ করতে আপনি ব্যবহার করতে পারেন 0Cযা বর্তমান লাইনের সমস্ত অক্ষর মুছে ফেলবে এবং আপনাকে সন্নিবেশ মোডে রাখবে।

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