Bash
在 bash 中打算使用 ctrl+T 嗎?
ctrl
我注意到 bash 有一個+的快捷方式,T
它交換游標前的最後兩個字元。我想知道為什麼工程師決定包括這個。
- 它是從以前的公約繼承的嗎?
- 還是有一個常用的實際目的?
這是從 GNU Emacs 繼承的(通過 readline),它使用
control
-T
來轉置字元:https://www.gnu.org/software/emacs/manual/html_node/emacs/Transpose.html
請注意,bash 的行編輯器預設為 Emacs 模式,但如果您願意,也可以將其切換到 vi 模式。
快速修復錯別字非常有用:
sl
變成
ls
用一個
Ctrl``T
.您也可以
Alt``T
用來交換單詞(例如service
在和…之間切換時systemctl
)。從歷史上看,這個
Ctrl``T
特性很可能是從 Emacs 來到 Bash 的。它可能是從其他編輯器複製到 Emacs 的;到 1980 年,它出現在斯坦福的 E 編輯器中(參見Essential E第 13 頁),並且 E 對 Richard Stallman 產生了強烈的影響(如Free as in Freedom中所述)。它是在非常早期的 Bash 版本中實現的,在 1989 年首次發布之前,它被拉到了readline
它今天所在的庫中(這是readline
ChangeLog
提示中的第一個條目)。