Ksh
為什麼 Korn Shell 不能做 ctrl-r?
如果我將 PC-BSD 與預設外殼 (Korn) 一起使用,則
Ctrl
+r
不起作用。為什麼它不起作用?
Ctrl
-r
在 1970 年代末或 80 年代初被引入搜尋您的歷史,而我的 BSD 仍然無法做到(而 Ubuntu 可以)。
Ctrl
-r
起源於 Emacs 不是嗎?什麼時候?1975 年?1983 年?
Ctrl+R
與ksh
inemacs
模式(ksh -o emacs
或set -o emacs
withinksh
)一起使用,它很可能是第一個支持它的 shell。只是它不像zsh
orbash
ortcsh
的i-search-back
小元件那樣具有互動性。在
ksh
(ksh88
和ksh93
)中,您鍵入Ctrl+R``text``Return
。並Ctrl+R``Return
使用相同的文本再次搜尋。在
vi
模式下,您可以使用?
向後搜尋和n
下一次搜尋。該
emacs
增量搜尋功能已添加到:
bash
/readline
至少從 1989 年 7 月開始,因為當時在 usenet 上已經提到了該功能,但可能從一開始就沒有,因為readline
隨附的版本zsh-1.0
沒有它。zsh
自 1991 年 2.0 之後,行編輯器被重寫,不再使用readline
。tcsh
在 V6.00.03, 10/21/91 中,但預設情況下沒有綁定(雖然在此之前有一段時間tcsh
啟用了其他搜尋機制)。Meta-P
ksh
:ksh
很可能是第一個具有emacs
編輯模式的 Unix shell,由 Mike Veach 於 1982 年在 AT&T 編寫(以及vi
Pat Sullivan 的模式,重用了這兩個人已經獨立應用於 Bourne shell 的程式碼)。ksh 在1983 年的 USENIX 會議上首次在 AT&T 之外引入,在該會議上描述了這些功能,但直到此後一段時間才在商業上可用 ( 1 , 2 )。很難判斷^R
當時是否已經存在(無論如何,它在 1986 年和 1985 年就已經存在(參見Unix Heritage Society 的 Unix V8 tarball 中的usr/man/man1/ksh.1
ksh85 手冊頁))),但很難想像它不是必不可少的功能,尤其是對於外殼而言,而且我希望當時vi
模式?
也存在。