以前的說法,我發現自己經常想要做這樣簡單的命令:的zsh:展開當前命令行
cp /really/long/path/from/file.txt /really/long/path/to/file.txt
雖然我已經使用快捷鍵像!!
和!$
的時候,它會是不錯的能夠引用當前的命令行中的最後一個參數(並可選地將其展開以進行編輯)。有沒有辦法做到這一點zsh,或其他一些等價的技巧來節省時間?
以前的說法,我發現自己經常想要做這樣簡單的命令:的zsh:展開當前命令行
cp /really/long/path/from/file.txt /really/long/path/to/file.txt
雖然我已經使用快捷鍵像!!
和!$
的時候,它會是不錯的能夠引用當前的命令行中的最後一個參數(並可選地將其展開以進行編輯)。有沒有辦法做到這一點zsh,或其他一些等價的技巧來節省時間?
一般情況下,你可以參考個別單詞使用歷史擴展當前命令行替換(展開)。
$ cp /really/long/path/from/file.txt !#:1:s/from/to
或
$ cp /really/long/path/from/file.txt !#:$:s/from/to
的!#
是歷史擴展爲命令行鍵入到目前爲止。 :1
指定該擴展中的第一個參數(在這種情況下爲長文件路徑)。可以使用:$
來代替最後一個參數,而不管迄今爲止輸入了多少個參數。 :s/from/to
在所選單詞上執行文本替換。
對於這個任務,你也可以使用括號展開:
$ cp /really/long/path/{from,to}/file.txt
(注:這兩個是從bash
拍攝,但在zsh
工作也可能有,我等zsh
-only技巧。沒有意識到)。
您可以點擊標籤來擴展zsh上的內容。例如:
如果我做這個命令第一
% ls /etc
而在這下一行我做
% !!<Tab>
的!!
將
% ls /etc
所以我可以更換按我想要的方式編輯。這適用於很多東西,如*
和環境變量。例如敲擊標籤關鍵$TERM
後,將與(例如,在我的情況)xterm-256color
完美的是,這兩個特徵正是我所期待的。我認爲支撐擴展可能是更好的方法,特別是因爲我可能會忘記'!#'表示當前行 – robbles