Bash
如何使用 vi 設置呼叫 bash 中的最後一個參數
我
set -o vi
在 bash 中使用設置。這裡的快捷Alt+.
方式(呼叫上一個命令的最後一個參數)在 emacs 模式下不起作用,那麼 vi 的等價物是什麼?
在後面添加這一行
set -o vi
:bind -m vi-command ".":yank-last-argument # or insert-last-argument
然後你可以在 emacs-mode中使用
Alt
+ like。.
或者使用歷史擴展,同時工作:
!$:p
有多種方法可以獲取最後一個命令的最後一個參數:
- inputrc:插入最後一個參數 & yank-last-arg
將以下程式碼複製到您的
~/.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
- 詞指示符:!!: $ & ! $
例如:
┌─ (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
Shell Word Designator的手冊顯示:
!!:$
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-$”的同義詞。如果事件中只有一個單詞,則使用’‘不是錯誤;在這種情況下返回空字元串。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) -> └─ #
在殼牌特殊參數手冊中:
_
(下劃線。)在 shell 啟動時,設置為用於呼叫在環境或參數列表中傳遞的 shell 或正在執行的 shell 腳本的絕對路徑名。隨後,在展開後展開到前一個命令的最後一個參數。還設置為用於呼叫每個執行的命令並放置在導出到該命令的環境中的完整路徑名。檢查郵件時,此參數保存郵件文件的名稱。