2013-11-25 39 views
0

當我在gnu屏幕終端多路複用器的終端屏幕緩衝區中運行vim時,Cntrl-A的作用是啓動屏幕綁定。但是當我在沒有gnu屏幕的終端屏幕緩衝區中運行vim時,Cntrl-A的效果是vim遞增光標下的數字。在這種情況下,屏幕優先於vim的是什麼?我可以覆蓋或自定義此優先方案嗎?確定程序處理鍵盤輸入的優先級

回答

1

Ctrl-A是GNU Screen的默認轉義字符,也稱爲命令字符;它在每個屏幕命令之前。當你使用ctrl-a:escape xy運行屏幕或屏幕內容時,可以使用命令行開關(-e xy)將其更改爲其他內容。在這兩種情況下,x都是新的轉義字符,例如^ B,而y是將該轉義字符發送到窗口中的程序的鍵。或者,您可以將「escape」命令放入.screenrc初始化文件中。缺省值是-e^Aa,這意味着您可以通過鍵入ctrl-a然後鍵入「a」來發送ctrl-A到vi。

這在GNU屏幕手冊的Invoking ScreenCommand Character部分進行了說明。

+0

您對如何解決我提出的有問題用例的評論很有用。我關於屏幕鍵盤優先級的問題依然存在。 – seewalker

+0

這只是它的工作方式?屏幕將所有鍵盤輸入傳遞給vim,除了轉義字符(默認情況下爲Ctrl-a),它將其識別爲屏幕本身的命令。 – JoeT