我經常會在伺服器上的多個文件之間切換。我將按順序運行以下範例命令:
nano /web/site/path/to/file
/web/site/script.py
nano /web/site/path/to/anotherFile
nano /web/site/path/to/yetAnotherFile
/web/site/script.py
nano /web/site/path/to/etc
要從一個nano
命令轉到下一個命令,我目前按Up並Backspace替換路徑的最後一段。問題是我真的真的懶惰的。
是否有鍵盤快速鍵(或 Bashism)可以:
- 被最後使用的路徑替換(末尾有一個額外的位元)
- 刪除目前行(例如按 後Up)回到最後一行
/
答案1
我認為您正在尋找Alt+Backspace快捷方式。
按此鍵後Up應刪除回前一個/
或space
字元。
答案2
若要偵測以您希望的方式向後刪除單字的 readline 綁定,您可以在終端機中使用以下命令:
bind -p | awk '/kill/ && /word/ && /backward/'
在預設的 Ubuntu 安裝中,輸出可能是:
"\e\C-h": backward-kill-word
# shell-backward-kill-word (not bound)
此時第二行似乎並不重要,所以讓我們試著看看第一行的含義。據我了解,backward-kill-word
readline 函數實際上刪除所有字符,直到前一個特殊字符(、/
等)綁定到按鍵序列。現在,按照這個順序;
,
\e\C-h
\e
代表鍵Esc,\C
-Ctrl鍵,\C-h
代表Ctrl+h哪一個在這種情況下是等價的帶Backspace鑰匙。
所以,您正在尋找Esc+ Ctrl+h鍵盤快速鍵相當於Esc+Backspace其中,因為 xterm 的行為使得Altkey 充當元字符,並且元字符被轉換為兩個字符序列,字符本身前面帶有Esc(請參閱man xterm
), 等價於Alt+Backspace。
現在,如果您不喜歡它並且繼續忘記它,您可以使用以下命令來建立新的快捷方式,例如Esc+ w,以滿足您的目的:
bind '"\ew": backward-kill-word'
要使這個新快捷方式對於所有使用 readline 的命令始終有效,請將以下行添加到您的~/.inputrc
文件中:
"\ew": backward-kill-word
請參閱help -m bind | sensible-pager
以獲取更多資訊。
答案3
另一個組合鍵是:
Alt+B然後Ctrl+K
Alt + B Move cursor backward one word on the current line
Ctrl + K Clear the line after the cursor
Alt+B然後Alt+D
這會刪除最後一個單詞,而不刪除單字之間的特殊字元。