
nm[TAB]
zshに拡張したいですnode_modules
。可能ですか?どうすればいいですか?
理想的には、使用可能な他の完了(たとえば、すでに存在するディレクトリ)がある場合はnm
トリガーされず、フォルダがある場合にのみ実行され、node_modules
パスの一部である場合(例:cd nm/mo[TAB]
->)が完了しますcd node_modules/moment
。
答え1
短くて甘い答え
私を書いてzsh-autocomplete
入れる。これは、他の多くの便利な機能だけでなく、すぐに目的のタスクを実行するようにZshの完成システムを構成します。
長いDIY回答
Zshでファジィ完成を得るには、以下を追加してください.zshrc
。
zstyle ':completion:*' matcher-list 'r:|?=**'
これは、入力した文字列の任意の位置に必要な数の文字を追加できるように、完成システムに指示することです。
次に、必要なディレクトリ機能を取得するには、次を追加します。
zstyle ':completion:*' accept-exact-dirs true
zstyle ':completion:*' list-suffixes true
accept-exact-dirs
したがって、2つのディレクトリnm
がありnode_modules
、nm
いいえ後者を達成しようとします。list-suffixes
入力したパスの最初の部分だけでなく、ディレクトリ名のすべての部分を完成させるように指示します。
accept-exact-dirs
他のすべてのコンプリートに対して -style アクションを取得するには、以下を追加します。
zstyle ':completion:*' accept-exact true
詳細はこちらからご覧いただけます。http://zsh.sourceforge.net/Doc/Release/Completion-System.html#Standard-Styles