1

私が欲しいもの:

cd c/ra<tab>に完了し、ディレクトリのリストを表示し~/code/rails-appますcd c/<tab>~/code


私が現在持っているもの:

c ra<tab>c rails-appディレクトリがある場合に完了し、その中にディレクトリのリストを表示し~/code/rails-appますc <tab>~/code

これを私の中に持つことによって.zshrc

c() { cd ~/code/$1; }
_c() { _files -W ~/code -/; }
compdef _c c


このツールは有望に見えます: https://github.com/flavio/jumpしかし、もっと軽量なものが欲しいです。

4

1 に答える 1

3

説明したようなタブ補完は、少なくともディレクトリについてはzsh、関数を記述しなくても実行できるはずzshです。

たとえば、このリンクは、入力するとプロンプトに/u/l/b展開tabされることを示しています。/usr/local/bin

これは私にとってはうまくいきます-私がその~/code/rails-appようなディレクトリを作った場合:

zsh% ls ~/code
another-app       another-dir rails-app
zsh% ls ~/code/rails-app
one two

それから:

zsh% cd c/ra<TAB> # this expands to 'cd code/rails-app'
zsh% cd c/<TAB><TAB> # Double tab, one to expand "c" to "code", 
zsh% #               # second gives me the zsh-completion menu

これがどのオプションであるかを指摘することはできませんzsh-私はかなり大幅に変更された~/.zshrcビットを使用していますoh-my-zsh。これは、有効にする必要なしにによって提供される機能である可能性があります。zshそうでない場合は、最初のリンクまたはZSHマニュアルのどこか、あるいはいくつかのバージョンの詳細oh-my-zshが役立つはずです。(私はマニュアルを少し見つけます...控えめに言っても、圧倒的ですが)。

私はあなたがこの振る舞いを達成するために関数を書く必要があるとは思わない-zsh間違いなくそれをすることができる。

于 2012-05-16T20:56:31.127 に答える