set -o vi
Bashで設定を使用しています。ここのショートカットAlt+.
(前のコマンドの最後の引数を覚えておいてください)はemacsモードでは動作しません。それではviに対応するものは何ですか?
答え1
最後のコマンドの最後の引数を取得する方法はいくつかあります。
1. inputrc: 最後のパラメータの挿入と最後のパラメータの抽出
次のコードを~/.inputrc
ファイルにコピーします。
set editing-mode vi
# Insert Mode
set keymap vi-insert
"\e.":yank-last-arg
"\e_": yank-last-arg
あなたはそれを使用することができます私のinputrcファイル。これは inputrc マニュアルですinsert-last-argument
そしてyank-last-arg
2. 単語の表示: !!:$ および !$
たとえば、
┌─ (marslo@MarsloJiao ~) ->
└─ # echo arg1 arg2 arg3 arg4 arg5
arg1 arg2 arg3 arg4 arg5
┌─ (marslo@MarsloJiao ~) ->
└─ # echo !$
echo arg5
arg5
┌─ (marslo@MarsloJiao ~) ->
└─ # echo arg1 arg2 arg3 arg4 arg5
arg1 arg2 arg3 arg4 arg5
┌─ (marslo@MarsloJiao ~) ->
└─ # echo !!:$
echo arg5
arg5
┌─ (marslo@MarsloJiao ~) ->
└─ # echo arg1 arg2 arg3 arg4 arg5
arg1 arg2 arg3 arg4 arg5
┌─ (marslo@MarsloJiao ~) ->
└─ # echo !!:^
echo arg1
arg1
┌─ (marslo@MarsloJiao ~) ->
└─ # echo arg1 arg2 arg3 arg4 arg5
arg1 arg2 arg3 arg4 arg5
┌─ (marslo@MarsloJiao ~) ->
└─ # echo !!:2-4
echo arg2 arg3 arg4
arg2 arg3 arg4
手動シェルワードインジケータ示す:
! ! :$
designates the last argument of the preceding command. This may be shortened to !$.
0(英)
The 0th word. For many applications, this is the command word.
N
The nth word.
^
The first argument; that is, word 1.
$
The last argument.
%
The word matched by the most recent ‘?string?’ search.
XY
A range of words; ‘-y’ abbreviates ‘0-y’.
*
単語 0 を除くすべての単語です。これは「1-$」の同義語です。 'の使用はエラーではありません。'イベントに単語が1つしかない場合は、空の文字列が返されます。 X
Abbreviates ‘x-$’
X-
Abbreviates ‘x-$’ like ‘x*’, but omits the last word.
3. シェル特殊パラメータ: $_
たとえば、
┌─ (marslo@MarsloJiao ~) ->
└─ # echo very-very-very-very-very-long-argument
very-very-very-very-very-long-argument
┌─ (marslo@MarsloJiao ~) ->
└─ # echo $_
very-very-very-very-very-long-argument
┌─ (marslo@MarsloJiao ~) ->
└─ # ls /usr/local/etc/
┌─ (marslo@MarsloJiao ~) ->
└─ # cd $_
┌─ (marslo@MarsloJiao /usr/local/etc) ->
└─ #
マニュアルにシェル特殊パラメータ:
_
(アンダースコア)シェルが起動したら、環境または引数リストに渡されたシェルを呼び出すために使用される絶対パス名または実行中のシェルスクリプトに設定します。その後、拡張後、前のコマンドの最後の引数に展開されます。また、実行された各コマンドを呼び出し、そのコマンドにエクスポートされた環境にデプロイするために使用されるフルパス名に設定されます。メールを確認すると、このパラメーターにはメールファイルの名前が保持されます。
答え2
次の行を後ろに追加してくださいset -o vi
。
bind -m vi-command ".":yank-last-argument # or insert-last-argument
その後、emacsモードと同様にAlt+を使用できます。.
または、次の両方で機能する履歴拡張を使用してください。
!$:p