2012-02-01 32 views
4

背景:Vim插入模式:始終按預期工作的明確鍵綁定?

有時在vim編輯時,可以在一個文件中多餘的字符,用戶沒想到在那裏是因爲他在「插入模式」匆忙衝過來時,得到一些完成。

幸運的是,即使用戶正在衝,按ESC幾次總是足以讓他們離開插入模式和正常模式,沒有任何意外。

問:

是否有一個鍵綁定適用於插入模式以同樣的方式?按「我」可以讓你進入插入模式,但如果你多次按下它,你將開始在文件中插入字母「i」。

目標:

的目標是有一定的鍵又回到插入模式,用戶甚至可以用眼睛按多次,結合封閉,仍然不用擔心意外的字符是「驚喜」放入文件中。

+0

我可以。本身並沒有想到任何簡單的組合,但是使綁定進入插入模式並不重要,但是在插入模式下什麼也不做。 – Sarah 2012-02-01 14:52:45

+1

你看過[this](http://vim.wikia.com/wiki/Avoid_the_escape_key #Toggling_insert_mode) – 2012-02-01 14:53:41

+0

Tom Ingram:感謝您的聯繫,不幸的是,這個建議顯示瞭如何*切換*插入模式(打開和關閉)...這個特定問題的目標是找到一種方法來打開它並知道它已經打開,即使你點擊,也不會在緩衝區中插入任何字符鍵連接多次。 – dreftymac 2012-02-01 14:58:29

回答

4

<C-o>i應該這樣做。 <C-o>讓你暫時進入正常模式,但只有一個命令,如果該命令是「進入插入模式」,那麼你只需返回那裏。


編輯:我可以重現你的錯誤消息,現在,它似乎最容易做的事情是這樣的:

:nmap <C-i> i 
:imap <C-i> <C-o>i 

如果不映射在插入模式<C-i>,但在正常模式下,那麼反覆擊中<C-i>將是冪等的。

感謝Benoit提及<C-i>在插入模式下插入一個選項卡。

+0

CTRL-O在正常模式下也有不同的含義。我不會建議,因此-1。 – Benoit 2012-02-01 15:27:33

+0

@Benoit:是的,你說得對。看我的編輯,應該做的伎倆。插入模式下爲 – bitmask 2012-02-01 15:29:05

+0

,CTRL-I插入一個製表符。 – Benoit 2012-02-01 15:32:02

2

由位掩碼給出的答案工作,但顯然它產生錯誤消息的副作用:

E37:沒有寫自去年變化(增加覆蓋!)

除非你已經配置您的vimrc關閉該消息。

,但似乎沒有產生錯誤信息工作的另一種選擇:這似乎是對標準工作的vim

CTRL-C i 

4

你應該做的是,在不同的模式下表現不同的映射:

:inoremap <F1> <NOP> 
:nnoremap <F1> i 
:vnoremap <F1> <esc>i 
:cnoremap <F1> <C-C>i 
:onoremap <F1> <esc>i 

擊中F1將進入插入模式即可。

您也可以切換'insertmode'設置(:set insertmode):在此模式下,插入模式是默認模式(要與逃生開關,你去用CTRL-L正常模式

+0

感謝您的回覆。這有助於在用戶有能力更改vimrc的情況下...雖然(用戶可能沒有能力或願意更改vimrc),但純粹的vanilla vim解決方案也不錯。 – dreftymac 2012-02-02 16:15:28