在閱讀「編寫GNU Emacs擴展」(O'Reilly手冊)的第一章後,我對emacs中鍵和鍵綁定之間的區別有些困惑。Emacs:鍵盤和鍵之間的關係
本章首先指出,在某些emacs版本中,按鍵退格鍵和DEL鍵調用幫助菜單而不是刪除。換句話說,它們調用由C-h調用的內容。
本章繼續介紹如何使用Lisp代碼更改此行爲。這是通過將鍵擊C-h綁定到刪除命令來完成的。
這對我有點困惑。在我看來,DEL,Backspace和C-h是三種不同的擊鍵(前兩種由單個鍵組成)。
爲什麼重映射C-h會影響DEL和Backspace的功能?
我本來以爲會改變backspace的作用,例如,您會將backspace重新映射到另一個命令,而不是按鍵C-h。
我明白了,這很有道理!後續問題:在一些emacs版本中,RETURN調用新行和縮進,而C-J只調用新行。怎樣才能將兩個不同的命令分配給 - 就像你聲稱的那樣 - 本質上是相同的字符代碼? – nsimplex
如果它們生成相同的字符代碼,我認爲這是不可能的,除非您在操作系統級別以其他方式重新映射它們。 – Renzo
另請注意,在終端中運行Emacs並將其作爲GUI應用程序運行時,在Emacs接收的關鍵代碼方面存在顯着差異。 GUI Emacs有機會區分在終端中難以區分的許多關鍵序列。 – phils