短くて甘い答え

短くて甘い答え

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_modulesnmいいえ後者を達成しようとします。
  • list-suffixes入力したパスの最初の部分だけでなく、ディレクトリ名のすべての部分を完成させるように指示します。

accept-exact-dirs他のすべてのコンプリートに対して -style アクションを取得するには、以下を追加します。

zstyle ':completion:*' accept-exact true

詳細はこちらからご覧いただけます。http://zsh.sourceforge.net/Doc/Release/Completion-System.html#Standard-Styles

おすすめ記事