2015-01-08 92 views
0

當我按下O時,vim編輯器會打印字符「O」,只有1秒鐘後它纔會擦除字符並運行命令(在當前行上方打開一個空行,並切換到插入模式)。vim中「O」命令的奇怪行爲

「o」命令正常工作。

這是爲什麼?

PS:以下是我的.vimrc:

colorscheme default 
set nocompatible ai sw=4 smarttab smartcase ignorecase showcmd noshowmatch 
set guifont=Monospace\ Bold\ 11 
map <BS> X 
sy on 

" Encoding selection - read file 
set wildmenu 
set wcm=<TAB> 
menu Encoding.koi8-r :e ++enc=koi8-r<CR> 
menu Encoding.windows-1251 :e ++enc=cp1251<CR> 
menu Encoding.ibm-866 :e ++enc=cp866<CR> 
menu Encoding.utf-8 :e ++enc=utf-8<CR> 
map <F8> :emenu Encoding.<TAB> 

" Encoding selection - save file 
set wildmenu 
set wcm=<Tab> 
menu Encoding.Write.koi8-r :set fenc=koi8-r<CR> 
menu Encoding.Write.windows-1251 :set fenc=cp1251<CR> 
menu Encoding.Write.cp866 :set fenc=cp866<CR> 
menu Encoding.Write.utf-8 :set fenc=utf8<CR> 
map <S-F8> :emenu Encoding.Write.<TAB> 
+0

如果您設置[timeoutlen](http://www.polarhome.com/vim/manual/v57/options.html#'timeoutlen')和[ttimeoutlen](http://www.polarhome。 com/vim/manual/v57/options.html#'ttimeoutlen')爲一些小值,例如50? – Jakob

+0

http://stackoverflow.com/a/2158610/553523 –

回答

0

嘗試檢查

:verbose map o 

:verbose nmap o 

這應該給你用 「O」 開頭的所有相關映射。

編輯您應該檢查mapnmap,因爲你在正常模式時,會出現這種尷尬現象是。檢查imap將無濟於事,因爲它只顯示在插入模式下應用的映射(您不是)。

+0

「找不到映射」(map和nmap)。 – user31264

1

這是vim處理方向鍵的副作用。將箭頭鍵作爲轉義序列發送到vim,接着是O,然後是AB,CD

如果您手工輸入以下任何一項,您將看到vim會將光標移到相應的方向。

  • <esc>OA移動<up>
  • <esc>OB移動<down>
  • <esc>OC移動<right>
  • <esc>OD移動<left>

如果你只是繼續鍵入效果應該是可以忽略不計。


如果您在兼容模式(單程得到它vim -u NONE),你會只看到ABC,或D在新行每次你打箭頭鍵一次。