বর্তমান অভ্যন্তরীণ ব্লকের ডান প্রান্ত অবধি মুছুন


21

ধরা যাক যে আমার কাছে এই জাতীয় কোড রয়েছে ( |কার্সারের অবস্থান উপস্থাপন করে ):

func1(x|, func2(), y); 

আমি পেতে চাই:

func1(x|);

কার্সারের অবস্থান থেকে বর্তমান অভ্যন্তরীণ ব্লকের ডান প্রান্তের পূর্ববর্তী অবস্থানে থাকা কোডটি কী মুছে দেওয়ার কোনও উপায় আছে ?

আমি জানি যে আমি যেতে পারি dt).তবে আমি কী di)করে এটির সাথে মিশ্রিত করার কোনও উপায় আছে কিনা তা অবাক করি ।


1
আপনি জানতে চাইলে "অভ্যন্তরীণ / বাহ্যিক অংশের বাম / ডান অর্ধেক মোছার" কোনও সহজ উপায় আছে কিনা তা জানতে আগ্রহী। তবে পার্শ্ব নোট হিসাবে, আমি সম্ভবত C);এই বিশেষ ক্ষেত্রে করতে হবে।
শাহবাজ

1
কখনও কখনও %গতি আপনি যা খুঁজছেন তা করতে পারে (যেমন d%)।
alxndr

উত্তর:


29

আমি ব্যবহার করব

d])

যার অর্থ হ'ল ( d) এর সাথে পরের মেলে ')' ( ])) মুছুন ।

দেখুন :help ])


5

গতিগুলি কেবল এক দিকে যায় যখন পাঠ্য-বস্তুগুলি কেবল দুটি দিকে যায়।

এর অর্থ হ'ল আপনি যদি কোনও কাস্টম অপারেটর মুলতুবি গতি তৈরি না করেন যা সেই টেক্সট-অবজেক্টটিকে হুডের নীচে ব্যবহার করে বা এর আচরণ অনুকরণ করে তবে আপনার অর্ধেক পাঠ্য-অবজেক্ট থাকতে পারে না।

আপনার উদাহরণে, আচ্ছাদিত পাঠটি i)ভিজ্যুয়ালাইজ করা বেশ সহজ:

func1(x, func2(), y);
      ^^^^^^^^^^^^^

তবে আপনি কীভাবে ভাইমকে এই পাঠ্যের শেষ পর্যন্ত কার্সার থেকে চালিত করতে বলবেন? এক মত কাস্টম অপারেটরদের তৈরি করতে হবে obi)এবং oei)(আধা র্যান্ডম উদাহরণ)।

" ()
onoremap oei) :normal! vi)o``<CR>
onoremap obi) :normal! vi)``<CR>

" []
onoremap oei] :normal! vi]o``<CR>
onoremap obi] :normal! vi]``<CR>

" {}
onoremap oei} :normal! vi}o``<CR>
onoremap obi} :normal! vi}``<CR>

" ""
onoremap oei" :normal! vi"o``<CR>
onoremap obi" :normal! vi"``<CR>

" ''
onoremap oei" :normal! vi'o``<CR>
onoremap obi" :normal! vi'``<CR>

4
জেনেরিক গতি তৈরি করা আকর্ষণীয় হবে যা বর্তমান কার্সার অবস্থানের সাথে মিলিত সমস্ত ইতিমধ্যে সংজ্ঞায়িত পাঠ্য-অবজেক্টগুলিকে পুনরায় ব্যবহার করে; উদাহরণস্বরূপ, পরিবর্তে জন্য ib, imbডান ও iMbবাম দিকে, ইত্যাদি (স্বয়ংক্রিয়ভাবে)।
ভ্যানল্যাসার

3

এই নির্দিষ্ট ক্ষেত্রে আমি চাই dfy

সাধারণ ক্ষেত্রে:

  • dT( কার্সার থেকে ব্লকের শুরু পর্যন্ত মুছুন
  • vib অভ্যন্তরীণ ব্লকের বাকী অংশটি নির্বাচন করুন
  • p আপনি সদ্য মুছে ফেলা যা অভ্যন্তরীণ ব্লক প্রতিস্থাপন

আপনি এটিকে ম্যাপিংয়ে পরিণত করতে পারেন।

 :map K dt(vibp

3

অন্যান্য বিদ্যমান উত্তরগুলি ভিএম এর সংজ্ঞা এবং একটি ব্লক সনাক্তকরণের উপর নির্ভরশীল। এই ধরণের মুছে ফেলার জন্য আমার কৌশলটি হল গতি এবং প্রকৃত চরিত্রের cসাথে মিলিত কমান্ডটি fথামানো ব্যবহার করা। এটি আসলে স্টপ অক্ষরটি মুছে ফেলবে, তবে এটি যে শেষ কী ছিল আপনি এটি পুনরায় বারবার চাপিয়ে বললে শূন্য ব্যয়ের পাশে থাকে এবং এটি cসন্নিবেশ মোডে পরিবর্তনের পরে এটি আবার প্রবেশ করানো হবে।


উদাহরণ সহ ব্যাখ্যা করা, জন্য

func1(x|, func2(), y); 

কমান্ড c2f))দেবে

func1(x)|;

যা প্রথমে অন্যান্য উত্তরগুলির তুলনায় কম মার্জিত মনে হতে পারে তবে লক্ষ্য করুন যে এই কৌশলটি সর্বজনীন এবং কোনও ব্লক সংজ্ঞাতে নির্ভর করে না।


উদাহরণস্বরূপ সঙ্গে

<div| class="some-class">text</div>

কমান্ড cf>>দেবে

<div>|text</div>

অথবা সিএসভি ফাইলগুলি সম্পাদনার সময় পছন্দ করুন

2016-11-29,question,vi|.stackexchange.com,10435

কমান্ড cf,,দেবে

2016-11-29,question,vi,|10435

প্রায়শই আমি এটিকে বাকী স্ট্রিংটি মুছতে ব্যবহার করি

printf("Hello world| - a boring example\n");

থেকে

printf("Hello world\|n");

সঙ্গে cf\\

বা থেকে

print("Hello world| - a boring example");

থেকে

print("Hello world"|);

সঙ্গে cf""


এটি বর্তমান অবস্থানকে জিজ্ঞাসা করা থেকে কিছুটা আলাদা জায়গায় পরিবর্তন করে এবং সন্নিবেশ মোডেও পরিবর্তন করে। তবে আমি বাকী কিছু মুছে ফেলার জন্য আমার গো-টু-সমাধানটি ভাগ করে নিতে চেয়েছিলাম।


1
সমাধানের সাথে সমস্যাটি cfহ'ল আমাকে যে চরিত্রটি মুছতে বাধাতে চাই সেখানে নির্দিষ্ট করতে হবে। প্রশ্ন যদি আপনি কেবল ব্যবহার করতে পারবেন না কি করতে হবে তা জিজ্ঞেস cf)আরেকটা কারণ )সামনে )আপনি আসলে (উদাহরণস্বরূপ, যখন আপনি পরিবর্তন করতে চান পৌঁছাতে চান func(x|, g(x, x), x, x, g(x, x))করতে func(x))। মূলত, আমি জানতে চেয়েছিলাম যে আমি .পরে চাপ এড়াতে পারি কিনা cf)
ম্যাটিউজ পাইওটরোস্কি

মনে রাখবেন যে আপনি মুছে ফেলার tপরিবর্তে ব্যবহার করতে পারবেন fতবে প্রদত্ত চরিত্রটি অন্তর্ভুক্ত করবেন না, সুতরাং আপনার প্রথম উদাহরণ ( func1(x|, func2(), y);) এর জন্য, আপনি কেবল ব্যবহার করতে পারেন d2t)। @ ম্যাটিউজপিয়োট্রোস্কি যদিও উল্লেখ করেছেন যে এটি কোনও সাধারণ সমাধান নয় এবং আপনি কোন চরিত্রটি মুছতে চান তা জানতে আপনার প্রয়োজন। যেহেতু আপনি সাধারণত জানেন যে কোন বর্ণটি আপনার প্রদত্ত ভাষার জন্য ব্লকটি শেষ করে যদিও এটি এতটা খারাপ নয়।
হাইগিন

3

তেজ-নিনজা-পা প্লাগইনটির মাধ্যমে আপনি যা খুঁজছেন তা হতে পারে। আমি যা বুঝি তা থেকে এটি "পাঠ্য অবজেক্টের শুরু / শেষ করতে কার্সার থেকে মুছুন" তৈরি করে d[এবং d]তাই d]i)"পার্শ্ববর্তী বন্ধনীর শেষ অবধি" মুছে ফেলা উচিত।

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