題 超級密鑰通過SSH


我通過SSH連接到無頭Ubuntu服務器(沒有X)並運行Emacs。在我的〜/ .emacs文件中,我使用's'(超級)修改器定義了一個鍵盤快捷鍵。當我在GUI中運行Emacs但不能通過SSH工作時,此快捷方式有效。我已經搜索了一些解釋,但還沒找到。我假設超級密鑰沒有通過SSH鏈接傳遞?


2
2018-04-01 20:15


起源


不知道真的,沒有用過多少,但你是否以同一個用戶身份登錄ssh服務器?即當你使用ubuntu時你的用戶名是超級密鑰工作的,就像你在超級密鑰不工作時ssh到ssh服務器時使用的用戶名一樣?如果在cd~ /中嘗試pwd命令,它是否顯示相同的主目錄 - barlop
不確定我是否遵循你所說的。我在GUI機器上以ABC身份登錄,其中〜/ .emacs定義了超級快捷鍵。我有時通過SSH登錄無頭機器作為用戶XYZ,其中相同的.emacs文件在〜中,因此超級密鑰定義存在於兩台機器上,但僅適用於GUI機器。 - SabreWolfy


答案:


GUI版本的Emacs可以使用X11協議監聽任何按鍵。終端版本有點受限 - 它只能接收終端程序轉發的按鍵;修飾鍵僅用作修飾符,從不作為單獨的鍵;最後,超級鑰匙才是  由任何模擬器轉發,僅僅因為它通常被認為是為操作系統保留用於窗口管理之類的東西。


3
2018-04-02 01:16





如果您確實需要使用終端模擬器中較少標準的修飾符鍵,則emacs具有以下鍵綁定:

C-x @ S         event-apply-shift-modifier
C-x @ a         event-apply-alt-modifier
C-x @ c         event-apply-control-modifier
C-x @ h         event-apply-hyper-modifier
C-x @ m         event-apply-meta-modifier
C-x @ s         event-apply-super-modifier

所以在你的情況下,使用 C-x @ s 對於超級修飾符。


5
2018-04-02 12:32



太好了,謝謝。知道這非常有用。現在測試它甚至可以通過PuTTY工作。 (我希望我也能接受你的答案,但是grawity的答案專門解決了我的問題,所以我接受了這個答案。) - SabreWolfy


終端仿真器將某些修改鍵轉換為序列並將這些序列轉發到終端程序。通常這些修飾鍵不包括在內 Super (贏得 鍵)。

Konsole 終端模擬器確實將此修飾符轉換為序列 ^X@s 雖然。因此,在Emacs中,您可以添加條目 local-function-key-map 映射到 event-apply-super-modifier。但是這樣的條目已經存在,所以沒有什麼可做的,只需使用即可 Konsole 和你的 s- 綁定將工作,即使通過SSH!

警告:綁定就像 C-x s-o 不會起作用,因為Emacs會把它視為 C-x C-x @ s o


1
2018-01-16 02:34