Robby Russellの oh-my-zsh フレームワークでzshを使用しています。コマンドの最後の部分を繰り返すショートカットまたは何かを作成するにはどうすればよいですか?
たとえば、次のように入力した場合:
mv something in/this/difficult/to/type/directory
これを簡単に取得する方法はありますか:in/this/difficult/to/type/directory?
私はテストしたところ、bashと同じ方法で実行できるようです:!$
。
!*
は[〜#〜] all [〜#〜]最後のコマンドの引数を提供します。
例:
% echo hello world
hello world
% echo !*
(expands to)-> % echo hello world
hello world
bashまたはzshのどちらにいても、!
演算子を使用して前のコマンドの引数を復元できます。
例として:echo a b c d
を例として
!$
-最後の引数:d!:*
-すべての引数:a b c d(短縮可能!*
)!:1
-最初の引数:a(!^
と同じ)!:1-3
-最初から3番目までの引数:a b c!:2-$
-2番目から最後の引数:b c dこの最後の点はあなたの質問に答えます、あなたはあなたのコマンドの最後の部分を取ることができます。
注:$:0
は最後に実行されたコマンドです。この例ではechoになります。
バインドキー「\ e」を追加します。あなたの.zshrcにinsert-last-Word
-sp3ctum、コメント ここ
!$
は、前のコマンドの最後のパラメーターを提供します。
例:
$ echo hello world
hello world
$ echo !$
echo world
world
私もこれに遭遇しました-私はいつもAlt.
はbashのinsert-last-Wordです。 oh-my-zshがこれをオーバーライドする場所が見つかりました。
Lib/key-bindings.zshで、これをコメントアウトします。bashのように機能します。
bindkey -s '\e.' "..\n"
<esc>.
もzsh
とoh-my-zsh
ですぐに使用できます。
@Charles Gueunetの回答を拡張するだけです。
!!
-最後のコマンド全体を繰り返しますこれは、コマンドの先頭にSudo
を追加し忘れた場合に役立ちます。簡単な例:
$ cat /some/root/owned/thing/with/a/long/path
Permission denied
$ Sudo !!
here's the conent