ভিমে "পরবর্তী খুঁজুন"


535

ভিমে এর জন্য অনুসন্ধানের জন্য cake, আমি টাইপ করতাম /cake, তবে আমি যখন রিটার্ন টিপব তখন কর্সারটি প্রথম ম্যাচে যায়। "পরবর্তী সন্ধান" করার জন্য কি ভিম কমান্ড সাদৃশ্যপূর্ণ?


33
ব্যবহার করতে অভ্যস্ত হন :help:help /অনুসন্ধান সম্পর্কে সহায়তা দেখায় এবং আপনার প্রশ্নের উত্তর পৃষ্ঠার সামান্য কিছুটা নীচে উপস্থিত হয়।
ক্রিস মরগান

উত্তর:


876

এটি nপরবর্তী এবং Nপূর্বের জন্য।

এবং আপনি যদি এর পরিবর্তে ?(উদাহরণস্বরূপ ?cake) দিয়ে বিপরীত অনুসন্ধান ব্যবহার করেন /তবে এটি অন্য রাস্তা।

যদি এটি আপনার সিস্টেমে ইনস্টল করা থাকে তবে আপনার vimtutorটার্মিনাল থেকে কমান্ড চালানোর চেষ্টা করা উচিত যা বেসিক ভিম কমান্ডের টিউটোরিয়াল শুরু করবে।

রব ওয়েলসের পরামর্শ সম্পর্কে *এবং #এটি খুব প্রাসঙ্গিক।


1
এছাড়াও ইনডেক্স অনুসন্ধান প্লাগইন দেখুন vim.org/scriptts/script.php?script_id=1682
সেরজিওআরাউজো

পরের ম্যাচে (বর্তমান লাইনে নয়) লাফ দেওয়ার কোনও উপায় আছে কি?
ব্যবহারকারী 13107

@ ব্যবহারকারী 13107: n এবং N পুরো বাফার / ফাইলে কাজ করে। আপনি বর্তমান লাইনে সীমাবদ্ধ নন।
জাভিয়ার টি।

@XavierT। কোনও ধারণা, কীভাবে আমি অনুসন্ধানে স্থির সংখ্যার ফলাফল লাফাতে পারি। আমি উদাহরণস্বরূপ 10 ম ম্যাচিং লাইনে লাফিয়ে বলতে চাই
জিপি সাইবার্গ

@ জিপিসিবার্গ: nবেশিরভাগ ভিআইএম অপারেটরের মতো কমান্ড পুনরাবৃত্তি করার জন্য একটি সংখ্যার সাথে উপসর্গ করা যেতে পারে। আপনি যদি টাইপ করেন তবে 10nএটি 10 ​​তম ফলাফলে চলে যাবে (প্রাথমিক ফলাফলের পরে)। এটি সমস্ত গতি অপারেটরের জন্য 3j3 লাইন নিচে যেতে পছন্দ করে for
জাভিয়ার টি।

210

আইএমএইচও, ভিমে সবচেয়ে দরকারী শর্টকাটটি *কী।

একটি শব্দের উপর কার্সার রাখুন এবং *কীটি চাপুন এবং আপনি সেই শব্দটির পরবর্তী উদাহরণে ঝাঁপিয়ে পড়বেন।

#কী একই, কিন্তু এটি শব্দের পূর্ববর্তী ক্ষেত্রটিকেই জাম্প।

এটি সত্যই সময় সাশ্রয়কারী।


6
এবং যদি এটি সুস্পষ্ট না হয়, nএবং একবার চাপ দেওয়ার পরে আপনাকে ম্যাচগুলির Nসামনে এবং পিছনে নিয়ে *যাবে *। (বা আপনি কেবল *এগিয়ে যেতে বা #পিছনে যেতে চাপ দিতে পারেন , তবে এই স্থানান্তরিত কীগুলি ব্যবহার করা সাধারণত সর্বোত্তম হয়))
হারবার্ট সিটজ

3
@ হারবার্ট, আসলে এন এবং এন আপনাকে "এগিয়ে" এবং "পিছনে" সম্মান নেবে না। যেমন @ জাভিয়ার উপরে উল্লিখিত হয়েছে, n এর পরের এবং এন এর আগের । '/' কী এবং 'এর সাহায্যে অনুসন্ধানটি উল্লেখ করে এগিয়ে এবং পিছনের দিকে অনুসন্ধানের নিয়ন্ত্রণ করা হয়? কী বা '*' কী এবং '#' কী সহ।
রব ওয়েলস

আমি * মনে করি না যে এটি দরকারী ... বেশিরভাগ সময় আমি কোনও শব্দের খণ্ডের জন্য অনুসন্ধান করি (উদাহরণস্বরূপ, কোনও ফাংশন নামের একটি অংশ)। আমি চাই না /Func, আমার নিতে SomeFuncএবং তারপর প্রেস '*' পরবর্তী উদাহরণ যেতে SomeFuncযখন পরবর্তী উদাহরণ Funcরয়েছে SomeOtherFunc
weberc2

এর চেয়েও খারাপ, সি ++ সহ আমি দেখতে পেলাম যে এটি পদ্ধতিতে অনুরোধ থেকে পদ্ধতি প্রয়োগের দিকে যায় /\<foo\>না কারণ মেলে না"className::foo()"
puk

84

যখন আমি শুরু করছিলাম তখন আমার একটি ডেমো দেখার দরকার ছিল ।

কীভাবে ভিমে অনুসন্ধান করবেন

  1. আদর্শ /
  2. অনুসন্ধান শব্দটি টাইপ করুন যেমন "ভার"
  3. প্রেস enter
  4. জন্য পরবর্তী উদাহরণস্বরূপ প্রেস n(জন্য পূর্ববর্তী N )

2
টাইপিং *ভুল। অর্থাত্ একটি ফাইল aa aaa। অনুসন্ধান /aa, আপনি মিল আছে। প্রথম ম্যাচে টিপে *অনুসন্ধানের শব্দটি পরিবর্তন হয়।
বার্নহার্ড

1
n 'পরবর্তী' নয় তবে "শেষ অনুসন্ধানটি পুনরাবৃত্তি করুন"। সুতরাং প্রবেশ করা? Var আপনার 'ভার' এর জন্য বর্তমান অবস্থান থেকে উপরের দিকে অনুসন্ধান শুরু করবে। এবং 'এন' হ'ল "বিপরীত দিকের সর্বশেষ অনুসন্ধানের পুনরাবৃত্তি" সুতরাং এই উদাহরণের জন্য যা বর্তমান অবস্থান থেকে 'ভ' এর জন্য নিচের দিকে অনুসন্ধান করবে।
রব ওয়েলস



13

আলোচিত হিসাবে, অনুসন্ধানের বিভিন্ন উপায় রয়েছে:

/pattern
?pattern
* (and g*, which I sometimes use in macros)
# (and g#)

প্লাস, পূর্বের সাথে নেভিগেট করা Nএবং এর সাথে পরবর্তী n

আপনি অনুসন্ধানের প্রম্পটটি সাথে টেনে /এবং তারপরে C-p/ দিয়ে চক্রের মাধ্যমে আপনার অনুসন্ধানের ইতিহাস সম্পাদনা / স্মরণ করতে পারেন C-n। আরও বেশি কার্যকর এটি q/আপনাকে এমন একটি উইন্ডোতে নিয়ে যায় যেখানে আপনি অনুসন্ধানের ইতিহাসটি নেভিগেট করতে পারেন।

এছাড়াও বিবেচনার জন্য সর্বাত্মক 'hlsearch'( :hlsসক্ষম করতে টাইপ করুন)। এটি আপনার প্যাটার্নের একাধিক দৃষ্টান্ত খুঁজে পাওয়া সহজ করে তোলে। আপনি এমনকি কিছু মিলিয়ে আপনার ম্যাচগুলিকে অতিরিক্ত উজ্জ্বল করতে চাইতে পারেন:

hi Search ctermfg=yellow ctermbg=red guifg=...

তবে তারপরে আপনি আপনার পর্দা জুড়ে ধীরে ধীরে হলুদ ম্যাচগুলি নিয়ে পাগল হয়ে যেতে পারেন। সুতরাং আপনি প্রায়শই নিজেকে ব্যবহার করে দেখতে পাবেন :noh। এটি এত সাধারণ যে ম্যাপিংটি ক্রমযুক্ত:

nmap <leader>z :noh<CR>

আমি সহজেই এটিকে মনে রাখি zযেহেতু আমি /zz<CR>আমার হাইলাইটটি সাফ করার জন্য ক্রমাগত টাইপ করতাম (যা একটি দ্রুত-টাইপ অস্বাভাবিক ঘটনা)। তবে :nohম্যাপিংটি আরও ভাল।


2
আপনি যদি অনুপ্রেরণা অনুভব করেন তবে আপনার q/সাথে খেলাও উচিত q:। দুজনেই সত্যিই সহজ! (যদিও এই প্রশ্নের সাথে আসলেই সম্পর্কিত নয়))
মিকাহ এলিয়ট

ধন্যবাদ, মীখা। আমি 'q:' সম্পর্কে ইতিমধ্যে জানতাম, যদিও আমি এটি এতটা ব্যবহার করি না। তবে 'কিউ /' সম্পূর্ণ আমার ভিএম শিক্ষায় হারিয়ে গেছে এবং আমি মনে করি প্রচুর ব্যবহার পাবে।
স্টেলেডোগ

2

আপনি "/ ওয়ার্ডফোরস অনুসন্ধান" এর মতো কিছু চাপার পরে যদি আপনি Ctrl+ Enterটিপেন, তবে আপনি বর্তমান লাইনে "ওয়ার্ডফোরস অনুসন্ধান" শব্দটি খুঁজে পেতে পারেন। তারপরে nপরবর্তী ম্যাচের জন্য টিপুন ; Nপূর্ববর্তী ম্যাচের জন্য টিপুন ।


1
"যখন আমরা কোনও অনুসন্ধান চালাই, তখন ভিম বর্তমান কার্সার অবস্থান থেকে এগিয়ে স্ক্যান করে, এটি খুঁজে পাওয়া প্রথম ম্যাচটি থামিয়ে।" প্রাকটিকাল ভিম উল্লেখ করেছেন As
বাস চক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.