আমি কি vi এর মতো hjkl কী দিয়ে zsh এর ট্যাব-সমাপ্তি মেনুতে নেভিগেট করতে পারি?


13

আমি zsh এর মেনু-ভিত্তিক ট্যাব সমাপ্তি ব্যবহার করি। আমি Tabএকবার চাপলাম , এবং সম্ভাব্য পরিসমাপ্তির একটি তালিকা উপস্থিত হবে। আমি যদি Tabআবার চাপ দিই , তবে আমি তীরচিহ্নগুলি দিয়ে এই তালিকাটি নেভিগেট করতে পারি। যাইহোক, এটা তাদের সাথে নেভিগেট করা সম্ভব vi-একটি H, J, K, Lপরিবর্তে কী?

আমি কম্যান্ড-লাইন ইনপুট জন্য Emacs মোড ব্যবহার, সঙ্গে bindkey -eমধ্যে ~/.zshrc। আমিও ব্যবহার জিম্বাবুয়ে zsh সঙ্গে। যদি প্রাসঙ্গিক হয় তবে ট্যাব-সমাপ্তি সিস্টেম নির্দিষ্ট করার জন্য কমান্ডগুলি এখানে রয়েছে

উত্তর:


16

হ্যাঁ, আপনি সক্ষম করে এটি করতে পারেন menu select:

zstyle ':completion:*' menu select
zmodload zsh/complist
...
# use the vi navigation keys in menu completion
bindkey -M menuselect 'h' vi-backward-char
bindkey -M menuselect 'k' vi-up-line-or-history
bindkey -M menuselect 'l' vi-forward-char
bindkey -M menuselect 'j' vi-down-line-or-history

+1 যদি আমি ম্যানুয়ালি bindkeyটার্মিনালে কমান্ডগুলি চালিত করি তবে এটি ভালভাবে কাজ করে , তবে আমি যদি সেগুলি এর শেষে রাখি তবে তা ব্যর্থ ~/.zshrcহয় /home/sparhawk/.zshrc:bindkey:186: no such keymap `menuselect'
স্পারহাক

আপনি সম্পূর্ণকরণ স্ক্রিপ্ট সক্ষম করেছেন? উপবৃত্তের আগে কমান্ডটি দেখুন ...
জেসনওয়ারিয়ান

আপনি zstyleলাইন মানে ? হ্যাঁ, আমি ছিল যে ~/.zshrcখুব।
স্পারহাক


যোগ করা autoload -Uz compinitএবং compinitকাজ করা হয়নি, তবে আমি নিশ্চিত না যে এটি সক্ষম করে তো সমস্যা হয়েছে কিনা, কারণ (ক) মেনু নির্বাচন একটি সাধারণ অর্থে সঠিকভাবে কাজ করে, এবং সর্বদা আছে এবং (খ) আমি নিজেই bindkeyপরে লাইনগুলি চালাতে পারি , যা কাজ করে। এছাড়াও, আমি ঠিক বুঝতে পেরেছি (খ) কেবলমাত্র যদি আমি প্রথমে ট্যাব টিপবই, সম্ভবত সম্পূর্ণরূপে সিস্টেমটি সূচনা করার জন্য চালিত হয় তবে চালিত হয় bindkey…। অন্যথায় এটি উপরে হিসাবে ব্যর্থ হয় ( bindkey: no such keymap `menuselect')।
স্পারহাক

4

নিকটস্থ আমি এই এসেছ ব্যবহার করছে CTRL- Nএবং CTRL- Pসম্ভব সম্পূর্ণকরণ প্রদর্শিত ফরোয়ার্ড এবং অনগ্রসর সরানো পরিবর্তে Tabএবং Shift- Tab। এই হল আরো vi-একটি নেভিগেশান।

একটি কনফিগার .zshফাইলে আমি এটি দিয়ে এটি অর্জন করি:

bindkey '^n' expand-or-complete
bindkey '^p' reverse-menu-complete

এবং সম্পর্কিতভাবে:

bindkey '^k' up-history
bindkey '^j' down-history
bindkey '^h' backward-delete-char
bindkey '^w' backward-kill-word
bindkey '^r' history-incremental-search-backward

বাইন্ডিংয়ের জন্য এখানে ডক্স রয়েছে ।


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