2012-08-23 41 views
2

好吧,所以我一直在嘗試Vim(標準控制檯版本;我的操作系統是Linux Mint 13),我想擺脫必須使用退出鍵可更改模式。優選地,我想交換Capslock和Escape鍵,但據我所知,這在Vim本身中是不可能的。我發現的大多數「解決方案」都涉及到在全球範圍內更改密鑰(使用xmodmap或其他),但我並不是那麼想。如果只有在Vim中有一個簡單的方法來換Capslock和Escape ,請告訴我。在Vim(德語鍵盤)中重新映射一個密鑰逃脫

我聽說的另一個常見事情是使用「Ctrl- [」作爲等同於Escape。但是,因爲我正在使用具有不同佈局的德語鍵盤,所以這不是一種選擇。所以,我想我會在Vim中使用noremap <C-ü> <Esc>(德國鍵盤上的「ü」鍵與美式鍵盤上的「[」鍵位於同一位置),但這也不起作用。我假設這是因爲「ü」不是一個ASCII字符。有沒有辦法讓這兩個選項中的任何一個起作用?

UPDATE:好的,這很奇怪。在嘗試了更多之後,似乎「Ctrl-ü」確實起作用。我不確定發生了什麼 - 也許我在嘗試不同的事情時搞砸了一些編碼相關的設置?如果沒有好的解決方案來重新映射capslock,我想我會堅持使用「Ctrl-ü」。

+0

不是您正在尋找的'簡單'解決方案,但您可以通過源代碼,更改綁定並重新編譯vim。 –

+0

嗯,我可以,但說實話,那是我最不想做的事情 - 我甚至無法每次更改源代碼就更新Vim!全局重新映射Capslock看起來並不是那麼糟;-) – Socob

回答

1

所以,是的,最終我決定與<C-ü>一起去,因爲它與其他任何東西都沒有衝突,因爲它與美國鍵盤上的<C-[>相同。但是,因爲我厭倦了使用德語鍵盤佈局進行編程(例如,要獲得「{」,您需要鍵入「Alt Gr-7」),我將鍵盤切換到US-國際,就Vim而言,它基本上具有類似的效果。這也有助於你想要養成觸摸式的習慣;你實際上不能看鍵盤,因爲鍵沒有標記「正確」;-)

0

很多人使用jk

inoremap jk <Esc> 

你也可以簡單地做<C-c>

+0

我真的不喜歡將正常字符序列重新映射到Escape的想法(如果我想輸入「jk」?),所以這對我不起作用。 ''不同於逃逸,所以沒有運氣,要麼... – Socob

+0

這是非常非常接近。比較':help i_ '和':help i_ctrl-c'。 – romainl

+2

我比jk更經常地看到jj提示,但是不經常鍵入的任何東西都會執行,如果鍵入jj或jk(如果它映射到esc),只需鍵入第一個字符,等待大約半秒,然後鍵入第二個一,它不會調用映射,這是一個放緩,但如果你不經常鍵入jj或jk,這不是一個大問題。 – Tshirtman

0

這是另一種可能對你有用的替代方案!它涉及到更改與VIM相關的鍵盤文件。我發現這個建議on this youtube video

$ cd /usr/share/X11/xkb/symbols/ 
sudo vim pc 

編輯的CapsLock鍵退出,改大寫鎖線如下:

key <CAPS> { [ Escape ] }; 

:wq#至

註銷寫入和關閉文件並重新登錄到機器中,並且應該更新!