Emacs 的 M-x 居然能用空格补全

我估計很多人都在用 helm ivy 之类,都不知道有这设定了。我是在看 Lisp Machine 的手册的时候想到的,结果还试出來了。又一個历史遺留。

你总算分享了一个我已经知道的技巧。

Emacs的学习是无止境的。

3 个赞

后知后觉....

不止空格补全,还可以任意字符串智能补全... 也就是说开了头之后,输入记得住的任何部分,然后按TAB

Tab 补全很正常,用过 Bash 总该想到,空格补全一般很难想到。

空格补全是一种“小”补全,补全一部分,而Tab是“大”补全 :joy:

所以這应該是为了兼容 Lisp Machine 设计的。不然只要 Tab 就够了

是因爲lisp machine的tab有其它用途還是什麼?

Lisp Machine 的文字交互界面叫 Command Processor

比如输入 Logi 再空格,会扩展成 Login (user name) ,括號里的文字是 Noise,只起提示参数作用。比 shell 强多了。Tab 不作补全,有专用的 Complete 鍵,作用和 GNU/Emacs 的 Tab 類似。

实际上 GNU/Emacs 的 M-x 还是「穷人版本」,一個 interactive function 对应一個命令,edit-namespace-object-user 要一個函數,edit-file 要定义另一個。

而 Lisp Machine 以及一些 Common Lisp based Emacs,只要定义 Edit Generic,Namespace ObjectFile instance 以及对应的 method, 就能用 Edit Namespace ObjectEdit File 命令了,界面更统一。

Cool :stuck_out_tongue_winking_eye: ;P會默認磚表情唉, 淦

1 个赞