2011-08-26 55 views
1

我想在VIM中將^鍵重新映射到<Esc>,因爲它更容易在德語鍵盤上觸及。據我所知是沒有的鍵碼爲^關鍵,我必須使用的termcap符號:什麼是插入符號(又名迴旋)(^)鍵的termcap代碼?

inoremap <t_*> <Esc>  " remap^to ESC 
inoremap <C-t_*> <t_*> " map CTRL-^ to the plain^(insert a '^' char) 

但我無法找到該circumlflex ^了termcap的代碼。有沒有人知道典型終端的termcap代碼的完整列表。我希望這個解決方案能夠在Ubuntu和Windows上爲gvim工作。

編輯:inoremap^<Esc>在Linux中部分工作。您必須按^^。只有使用非死鎖佈局時,它才能正常工作。 inoremap <C-^> ^對於非死鎖佈局也可以正常工作,但根本不能使用默認佈局。

解決方案:使用鍵盤佈局不靜音^鍵,並使用^(又名抑揚或插入符)作爲性病。在〜/ .vimrc中使用ASCII字符。

請參閱superuser.com/questions/280005,如何在Windows中禁用死鎖。 Thx Jens的鏈接。

THX,尤文

+0

做'inoremap^'和'inoremap ^'工作嗎? –

+0

它適用於Linux。但是我在那裏使用了一個nodead-key佈局。我想這是訣竅。在Windows中,我有一個正常的德語佈局,在按下其他鍵之前按'^'鍵不會執行任何操作。那裏'inoremap^'不起作用。 – Juve

回答

1

插入符號^是一個普通的ASCII字符;它代表自己,不會產生任何termcap/terminfo序列,所以你嘗試使用<t_*>是徒勞的。 試圖找出如何關閉窗口上的死鎖,並完成ib的解決方案。

+0

當我第二次按下'^'時會產生ASCII字符。所以我仍然對第一個'^'press的termcap代碼感興趣。我認爲每個鍵都有一個termcap代碼,甚至默認的ASCII字符? – Juve

+0

你的理解是不正確的。這是最初創建應用程序接收的字符序列的鍵盤驅動程序。只有在這之後纔會使用termcap/terminfo來映射這些序列以進行某些操作,例如,終端向UpArrow Key發送 OA,並且使用termcap,應用程序知道請求抽象函數「Cursor Up」。死鍵是X-Server/Windows-Keyboard驅動程序的低級功能。 – Jens

+0

好的,我明白了。所以vim在按第二個'^'之前不會得到任何序列。因爲鍵盤驅動程序攔截第一個。 – Juve

相關問題