当我按下O时,vim编辑器打印字符" O",并且仅在1秒后它擦除字符并运行命令(在当前行上方打开一个空行,并切换到插入模式)。
" 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 :(得分:1)
由于vim处理箭头键的方式,这是副作用。箭头键作为转义序列发送到vim,然后是O
,然后是A
,B
,C
或D
。
如果您手动键入以下任何内容,您将看到vim将光标移动到相应的方向。
<esc>OA
移动<up>
<esc>OB
移动<down>
<esc>OC
移动<right>
<esc>OD
移动<left>
如果你只是继续输入效果应该可以忽略不计。
如果您处于兼容模式(获取vim -u NONE
的一种方式),您只会看到A
,B
,C
或D
每次按下其中一个箭头键时都会换行。
答案 1 :(得分:0)
尝试检查
:verbose map o
和
:verbose nmap o
这应该为您提供以&#34; o&#34;开头的所有相关映射。
修改当出现这种尴尬行为时,您应该检查map
或nmap
,因为您处于正常模式。检查imap
不会有帮助,因为它只显示在插入模式下应用的映射(您不是)。