আপনি vi / vim এ বন্ধনীগুলির মধ্যে দখল বা মুছতে পারবেন?


128

সি কোডের এই লাইন দেওয়া:

printf("%3.0f\t%6.1f\n", fahr, ((5.0/9.0) * (fahr-32)));

প্রথম সাহসী বন্ধনী থেকে এর মেলা বন্ধনীতে মুছে ফেলা বা ইয়াঙ্ক করার কোনও উপায় আছে কি? আমি ডিএফ) সম্পর্কে ভেবেছিলাম , তবে এটি আপনাকে কেবল 9.0 এর পরে পেয়ে যাবে।

নিউলাইনগুলি নির্বিশেষে, ম্যাচের ধনুর্বন্ধনীগুলির মধ্যে সমস্ত কিছুর জন্য ভিএম পাওয়ার কি একই রকম উপায় আছে?

উত্তর:


167

বিভিন্ন গতিবেগ:%

%কমান্ড কার্সার অধীনে আইটেমের ম্যাচে জাম্প। খোলার (বা সমাপ্ত) পেরেনে কার্সারটি অবস্থান করুন এবং y%ইয়ঙ্কিং বা d%কার্সার থেকে ম্যাচিং পেরেন পর্যন্ত সমস্ত কিছু মুছতে ব্যবহার করুন ।

এটি %"মোশন কমান্ড" হওয়ায় এটি কাজ করে , সুতরাং এটি যে কোনও আদেশ যেমন প্রত্যাশা করে তা যে কোনও জায়গায় ব্যবহার করা যেতে পারে। থেকে :help y:

["x]y{motion}       Yank {motion} text [into register x].  When no
                    characters are to be yanked (e.g., "y0" in column 1),
                    this is an error when 'cpoptions' includes the 'E'
                    flag.

ডিফল্টরূপে, "আইটেম" এর মধ্যে বন্ধনী, ব্রেস, প্যারেনস, সি-স্টাইলের মন্তব্য এবং বিভিন্ন প্রাকম্পম্পেলার বিবৃতি ( #ifdefইত্যাদি) অন্তর্ভুক্ত থাকে।

"বর্ধিত% মিল" এর জন্য একটি প্লাগইন রয়েছে যা আপনি ভিম হোমপেজে খুঁজে পেতে পারেন ।

আপনি কমান্ড মোডে %প্রবেশ করে ডকুমেন্টেশন অন এবং সম্পর্কিত মোশন কমান্ডগুলি পড়তে পারেন :help various-motions

অবজেক্ট নির্বাচন

মোশন কমান্ডগুলির আরও একটি সেট রয়েছে যা আপনি ভিজ্যুয়াল মোডে বিভিন্ন পাঠ্য অবজেক্ট নির্বাচন করতে ব্যবহার করতে পারেন।

আপনার নির্দিষ্ট সমস্যা সমাধানের জন্য আপনি নিম্নলিখিতগুলি করতে হবে:

printf("%3.0f\t%6.1f\n", fahr, ((5.0/9.0) * (fahr-32)));
                                   ^

আসুন আমরা বলি যে আপনার কার্সারটি অবস্থিত ^। আপনি যে অংশটি সন্ধান করছেন তা নির্বাচন করতে নিম্নলিখিত ক্রমটি প্রবেশ করুন:

v2a)

প্রথমে vভিজ্যুয়াল মোডে প্রবেশ করে, তারপরে আপনি উল্লেখ করতে পারেন যে আপনি 2প্যারেনস স্তরটি উপরে যেতে চান । শেষ পর্যন্ত a)"একটি ব্লক" নির্বাচন করে। এর পরে আপনি মুছতে dবা ব্যবহার করতে পারেন xইত্যাদি

আপনি যদি বাইরের পেরেনগুলি অন্তর্ভুক্ত করতে না চান তবে আপনি তার পরিবর্তে "অভ্যন্তরীণ ব্লক" ব্যবহার করতে পারেন:

v2i)

:help object-selectসম্পর্কিত কমান্ডগুলির সম্পূর্ণ তালিকা দেখুন ।


ধন্যবাদ! আমি মেলানো আইটেমগুলির মধ্যে% পরিবর্তন সম্পর্কে জানতাম; কমান্ডগুলির মধ্যেও এটি কার্যকর ছিল না। +1 এবং স্বীকৃত।
রোমান্ডাস

5
মজার বিষয়, আমি সবসময় a"আ" এর পরিবর্তে "কাছাকাছি" বোঝানো ভেবেছিলাম । এটি "অভ্যন্তরীণ" আরও ভাল পরিপূরক বলে মনে হয়। ভিম সম্পর্কে মনে হয় নতুন কিছু শিখতে না পারায় একটি দিনও যায় না।
অ্যান্ড্রু মার্শাল

217

কি সম্পর্কে dibবা di(

মুছে দেব ভেতরের (...) ব্লক যেখানে কার্সার হয়।

আমি টেক্সট-অবজেক্টের গতি এবং নির্বাচন পছন্দ করি!


10
ভাগ্যক্রমে, আমি যখন গুগল করলাম তখন এই প্রশ্নটি প্রথম হিট - জানি না এই উত্তরটি আমাকে কতবার বাঁচিয়েছে। এবং আমি এটি সর্বদা ভুলে যাই ... :-(
কনরাড রুডল্ফ

16
প্রথম বন্ধনী সহ মুছে ফেলা কি সম্ভব? (হ্যাঁ, আমি আমার নিজের প্রশ্নের উত্তর দিয়েছি: dab=> একটি ব্লক মুছুন (এর প্রথম বন্ধনী সহ)
বান্টিক

5
আমি ভোট দিয়েছি অতিরিক্ত হিসাবে যদি আপনি প্রথম বন্ধনীর ভিতরে শব্দটি সংশোধন করতে চান তবে ciw করুন
বিকাশকারী মারিয়াস Žilėnas

5
+1 টি! আমি সম্প্রতি টেক্সট-অবজেক্টের গতি আবিষ্কার করার সময় আমি মনের ভাব পেয়েছি!
ইয়াঙ্ক

36

এক জোড়া প্রথম বন্ধকের ভিতরে থাকা সমস্ত কিছুই মুছতে আপনি সর্বদা ইস্যু করতে পারবেন di(এবং এর ডেরিভেটিভস।

বিঃদ্রঃ :

@ পোরগলজম্ব তাঁর মন্তব্যে যেমন পরামর্শ দিয়েছেন, আপনি প্রথম বন্ধনী অন্তর্ভুক্ত করার aজন্য i("ভিতরে") এর পরিবর্তে ("পাশাপাশি") ব্যবহার করতে পারেন । সুতরাং, ব্যবহার da(মোছাগুলিকে সবকিছু ভিতরে (এবং )সহ (এবং )

তাত্ক্ষণিক বাহ্যিক জোড়ার বন্ধনীর ভিতরে পাঠ্য মোছা:

সুতরাং, কোড এই লাইন জন্য

printf("%3.0f\t%6.1f\n", fahr, ((5.0/9.0) * (fahr-32)));
                                ^       ^
                                |       |
                                 \_______\___---> Cursor range

ধরে নিলাম যে আপনার কার্সারটি উল্লিখিত কার্সার সীমার মধ্যে রয়েছে, আপনি নিম্নলিখিত আদেশগুলি জারি করতে পারেন:

di(   --> Deletes '5.0/9.0'
ci(   --> Substitutes '5.0/9.0'
yi(   --> Yanks '5.0/9.0'

বাহ্যিক জোড়ার বন্ধনীগুলির পাঠ্য এন-ম-এর ভিতরে মুছে ফেলা হচ্ছে:

বাহ্যিক জোড়ার এন-থ্রি পের্থেসিসের ভিতরে সমস্ত কিছু দখল nকরতে উপরের কমান্ডের আগে কেবল যুক্ত করুন । সুতরাং, উপরের মত একই কার্সার অবস্থানের সাথে,

2di(   --> Deletes '(5.0/9.0) * (fahr-32)'
2ci(   --> Substitutes '(5.0/9.0) * (fahr-32)'
2yi(   --> Yanks '(5.0/9.0) * (fahr-32)'

3di(   --> Deletes '"%3.0f\t%6.1f\n", fahr, ((5.0/9.0) * (fahr-32))'
3ci(   --> Substitutes '"%3.0f\t%6.1f\n", fahr, ((5.0/9.0) * (fahr-32))'
3yi(   --> Yanks '"%3.0f\t%6.1f\n", fahr, ((5.0/9.0) * (fahr-32))'

3
aআপনার প্রতিপক্ষ হিসাবে কথা বলার জন্য একটি নোট যুক্ত করা উচিত i, যেহেতু এটি সম্ভবত অনেক লোককে সহায়তা করবে।
পোরগলজম্প

@ রোমান্ডস এটি গ্রহণযোগ্য প্রশ্ন হওয়া উচিত। আমি আজ ঠিক একই সমস্যার জন্য সন্ধান করছিলাম এবং @ কেভিন এখানে সঠিক উত্তর দিচ্ছেন। অবশ্যই, আমি %এই সমস্যার জন্য "অপব্যবহার" করতে পারি , তবে এটি আরও বেশি সময় নেয় এবং আমার মতে, কেবল আরও জটিল পরিস্থিতিগুলির জন্য ব্যবহার করা উচিত। একটি নির্দিষ্ট সুযোগের মধ্যে কিছু মুছে ফেলা হ'ল ব্যবহারের ক্ষেত্রে diতৈরি।
daniel451

19

আপনি d%মুছে ফেলার y%জন্য এবং ইয়াঙ্কিংয়ের জন্য ব্যবহার করতে পারেন ।


3
% হ'ল "ম্যাচ করা প্রথম বন্ধনী, বন্ধনী বা ব্রেস" এর জন্য আন্দোলনের নির্দিষ্টকরণকারী। যে কোনও চলনের স্পেসিফিকেশন ডি এবং ওয়াই (এবং অন্যান্য অনেকগুলি জিনিস) যুক্ত করা যায়।
বিশৃঙ্খলা

10

আপনার কার্সারটি প্রথম বন্ধনীতে রাখুন, তারপরে v%yবা টিপুন v%d


3
গ্রেট! ম্যাচিং প্যারেনে% লাফ দেয়। সুতরাং আপনি এমনকি d% এবং y% ব্যবহার করতে পারেন।

1
নোট, এছাড়াও, যে 'd%' একটি ফাংশন নামের শুরুতে শুরু করতে পারে এবং পুরো ফাংশন কলটি মুছবে। এটি '{}', '[]' এবং এমনকি '<>' জোড়গুলির জন্যও কাজ করে।
জোনাথন লেফলার

@ লেফলার, টিপস জন্য ধন্যবাদ! এবং ভিজ্যুয়াল মোডেও% কাজ করে তা জানা ভাল।
স্ট্রাগার

3

সিআই [ব্লক-পার্শ্ববর্তী] চেষ্টা করে দেখুন

আপনার ক্ষেত্রে, আপনি হাইলাইট করেছেন এমন দুটি প্রথম বন্ধকের মধ্যে কার্সারটি যে কোনও জায়গায় রাখুন এবং কীগুলি চেষ্টা করে দেখুন: সিআই (


প্রায়। এটি পরীক্ষা করে দেখে মনে হচ্ছে কার্সারটি প্রথম বন্ধনীতে হওয়া দরকার, এর মধ্যে নয় এবং 'সি' পরিবর্তন কমান্ড। খোলার প্রথম বন্ধনে কার্সার সহ, 'ডি (' ম্যাচিং বন্ধ হওয়া বন্ধনীতে মুছে ফেলা হয়, এবং '
ইয়ি

সিআই আমার জন্য সারাক্ষণ কাজ করে। আমাকে যা করতে হবে তা নিশ্চিত করা দরকার যে কার্সারটি সেই প্রথম বন্ধনীগুলির মধ্যে রয়েছে যা আমার মুছে ফেলতে হবে এমন পাঠ্যের ব্লককে ঘিরে।
জাস্টিন এনগুইন

2

ডেভিড নরম্যানের উত্তর হিসাবে ,

আপনার কার্সারটি প্রথম বন্ধনীতে রাখুন, তারপরে v%yবা টিপুন v%d

Http://vimdoc.sourceforge.net/htmldoc/vimindex.html থেকে ব্যাখ্যা :

সাধারণ মোডে ট্যাগ চর নোট ক্রিয়া        
-------------------------------------------------- ----------------------------
| বনাম | v চরিত্রগতভাবে ভিজ্যুয়াল মোড শুরু করুন
|% | % 1 পরবর্তী (কোঁকড়ানো / বর্গক্ষেত্র) বন্ধনী সন্ধান করুন
                                       এই লাইনটি এবং এর ম্যাচে যান, বা যান
                                       মিলে যাওয়া মন্তব্য বন্ধনী, বা মিলিতে যান
| ঘ | ["x] d {গতি} 2 Nmove পাঠ্য মুছুন [বাফার এক্স মধ্যে]

এর অর্থ এটি %আপনার সামনে দৃশ্যমানভাবে ( v) দেখানোর সময় দুটি বন্ধনী ( ) এর মধ্যে এবং এর মধ্যে সমস্ত কিছু নির্বাচন করবে এবং তারপরে ইয়ঙ্ক / অনুলিপি yবা মোছা / কাটবেd । (ডিফল্ট বাফারে।)

আপনি এতে দিয়ে / পেস্ট করতে পারেন p

"নিজেকে মাছ ধরতে শেখাতে" এই উত্তরটি দিয়েছিলেন ।


দ্রষ্টব্য: vimdoc.sourceforge.net vim.org থেকে লিঙ্ক করা হয়েছে যা 2015 সালের হিসাবে ভিমের অফিশিয়াল সাইট
n611x007
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.