2

Zsh では、現在の Git ルートを取得できます。

% echo $(git rev-parse --show-toplevel)

何らかのトリガーでこの文字列に動的に展開したいと考えています。つまり、いくつかのキー文字列を「現在の git リポジトリ ルート」にシームレスに展開し、そこからファイル/ディレクトリを選択し続けたいと考えています。

たとえば、トリガーが「grt」で、次のように入力した場合:

% copy grt

tab、「grt」は現在の git リポジトリ ルートに置き換えられます (「grt」ファイル/ディレクトリが現在のディレクトリに存在しない場合)。

どうにかして完成系に引っ掛けないといけない気がします。ヒントはありますか?

4

2 に答える 2

2

使用できますbindkey

bindkey -s grt '$(git rev-parse --show-toplevel)\t'

末尾の\t文字は、コマンド置換の展開をトリガーします。省略した場合は、grt単純に に展開され、必要$(...)に応じて補完できTabます。

于 2013-12-02T20:31:30.800 に答える
2

1つの方法は、好きなように関数をセットアップすることです.zshrc:

function grt()
{
    git rev-parse --show-toplevel
}

次に使用します(2つの例):

cd $(grt)
cp file1 $(grt)
于 2013-11-04T02:59:22.523 に答える