আমি কীভাবে জেডএসএইচ-এর ভিআই-মোডে বিপরীত ইতিহাস অনুসন্ধান করব?


47

আমি vimমূলত আমার সমস্ত সম্পাদনা প্রয়োজনের জন্য ব্যবহার করি , তাই আমি আবারও আমার শেলটির জন্য ভিআই-মোড চেষ্টা করার সিদ্ধান্ত নিয়েছি (বর্তমানে ওএস এক্সে জেডএসএইচ ডাব্লু / ওহ-মাই-জেডএস), তবে আমি নিজেকে Ctrl-Rনিয়মিতভাবে ব্যবহার করার চেষ্টা করছি (এবং ব্যর্থ)) সমতুল্য কী-বাঁধাই কী? এবং ভবিষ্যতের রেফারেন্সের জন্য, আমি কীভাবে এটি নিজেকে খুঁজে বের করব? আমি নিশ্চিত যে আমি bind -Pব্যাশে ব্যবহার করতে পারি ।


2
'ম্যান zshzle' এর মতে, ইতিহাস-ইনক্রিমেন্টাল-অনুসন্ধান-পশ্চাদপসরণ ডিফল্টরূপে ভিআই মোডগুলিতে আবদ্ধ নয় (সংযুক্তি, viins)।
পল

উত্তর:


56

bindkeyবিদ্যমান বাইন্ডিংগুলির একটি তালিকা পেতে আপনি কোনও যুক্তি ছাড়াই চলতে পারেন , যেমন:

# Enter vi mode
chopper:~> bindkey -v

# Search for history key bindings
chopper:~> bindkey | fgrep history
"^[OA" up-line-or-history
"^[OB" down-line-or-history
"^[[A" up-line-or-history
"^[[B" down-line-or-history

ইমাস মোডে আপনি যে বাঁধাই করতে চান তা হ'ল history-incremental-search-backwardতবে এটি ভিআই মোডে ডিফল্টরূপে আবদ্ধ নয়। নিজে সিটিআরএল-আর বেঁধে রাখতে, আপনি এই আদেশটি চালাতে পারেন, বা আপনার এটিতে যুক্ত করতে পারেন ~/.zshrc:

bindkey "^R" history-incremental-search-backward

zshzleর manpage ( man zshzle) zsh এর লাইন সম্পাদক bindkey, এবং Emacs / চ মোড সম্পর্কে আরও তথ্যের হয়েছে।


3
ধন্যবাদ, বিশেষ করে এর জন্য zshzle। এটি বেশ তথ্যমূলক এবং দরকারী useful
হ্যাঙ্ক গে

আমি তোমাকে ভালোবাসি. সিরিয়াসলি। ওএসএক্স এল ক্যাপিটনে আপগ্রেড করার পরে বিপরীত অনুসন্ধান চলে গিয়েছিল এবং আমি আমার দৈনন্দিন কাজের প্রবাহের সমস্ত কিছুর চেয়ে এটিকে মিস করেছি।
খ্রিস্টান

24

এটি একটি প্রাচীন প্রশ্ন, তবে একমাত্র (এবং স্বীকৃত) উত্তরটি মূলত একজনকে বলে যে কীভাবে "ইমাস-সদৃশ" history-incremental-search-backwardভিআই মোডে স্থানান্তর করতে হয় । যদিও এটি পুরোপুরি করণীয় এবং আপনার পক্ষে সঠিক সমাধান হতে পারে, এটি কিছুটা আশ্চর্যের বিষয় যে কেউই ইতিহাস অনুসন্ধানের "দ্বিমূলক উপায়" উল্লেখ করেনি।

zsh এ vi মোড স্ট্যান্ডার্ড vi / vim কীগুলি ব্যবহার করে ইতিহাস অনুসন্ধান করে: /এবং ?উভয়ই কমান্ড মোডে উপলব্ধ available ( <Esc>Vi বা vim এর মতো সন্নিবেশ থেকে কমান্ড মোডে স্যুইচ করতে হিট করুন ))

তাদের বোধ বিপরীত হয়, যদিও: যেহেতু আপনি সাধারণত আপনার শেলের ইতিহাস বিপরীতে অনুসন্ধান করতে চান /তাই বিপরীত অনুসন্ধান করেন যেখানে ?একটি সামনের দিকে অনুসন্ধান করা হয়।

প্রথম হিট প্রদর্শিত হয়ে গেলে, আপনি nএকইভাবে আরও হিটগুলি সন্ধান করতে বা Nঅনুসন্ধানের দিকটি বিপরীত করতে (vi / vim এর মতোই) ব্যবহার করতে পারেন ।

কীম্যাপে প্রাসঙ্গিক ডিফল্ট কী-বাইন্ডিংগুলি হ'ল vicmd:

"/" vi-history-search-backward
"?" vi-history-search-forward
"n" vi-repeat-search
"N" vi-rev-repeat-search

2
এটি ব্যবহার করা "^P" history-beginning-search-backwardএবং "^N" history-beginning-search-forwardভিম-জাতীয় স্বতঃপূরণ জন্যও ভাল (আপনি টাইপ করা শুরু করেন, তারপরে টিপুন ctrl+pবা টিপুন ctrl+n)।
সিআরপিএন

আমার জন্য, সামনে ?এনেছে bck-i-search, যা ঠিক আমি যা খুঁজছিলাম। ধন্যবাদ.
geowa4

@wjv ইতিহাস-ইনক্রিমেন্টাল-সন্ধান-পিছিয়ে যাওয়ার সুবিধা হ'ল এটি গ্লোব নিদর্শনগুলিকে সমর্থন করে। ডিফল্ট /নাকি `? ' dont: coderwall.com/p/-jvcag/zsh-reverse-history-search-with-regex
alpha_989

@ alpha_989 আপনার উল্লেখ করা ব্লগ পোস্টটি ভুল। এটি হতে পারে যে লেখকের কিছু zsh "ফ্রেমওয়ার্ক" ইনস্টল করা আছে যা কী- ^Rবাইন্ডিংকে ওভারলোড করে । একমাত্র "রেজেক্স-সদৃশ" অক্ষর উভয়ই সমর্থিত history-search-backwardএবং history-incremental-search-backwardতা হ'ল ^, লাইনের শুরুতে অনুসন্ধানের স্ট্রিংটিকে অ্যাঙ্কর করা। এর আসল শক্তি history-incremental-search-backwardহ'ল এটি একটি বর্ধিত অনুসন্ধান করে যা এর নাম অনুসারে সুপারিশ করে। আমি কল্পনা করতে পারি যে কেউ কেউ এ কারণে vicmdমূলম্যাপে আবদ্ধ করতে চান ।
wjv

@wjv, আপনি ঠিক বলেছেন .. আমার লেখা উচিত ছিল history-incremental-pattern-search-backward, না history-incremental-search-backwardhistory-incremental-pattern-search-backwardsএকটি উইজেট হতে পারে .. তবে আমি মনে করি এটি zsh এ ডিফল্টরূপে ইনস্টল করা আছে। এটি globনিদর্শনগুলিকে সমর্থন করে regexযেমন আপনি সঠিকভাবে নির্দেশ করেছেন: zsh.sourceforge.net/Doc/Re कृपया / Expansion.html# গ্লোব- অপারেটর । পোস্টে আসলেই একটি ভুল আছে ..
alpha_989
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.