Vim:<cr>发生了什么?</cr>

时间:2013-10-20 10:18:52

标签: vim

在Vim中,&lt; cr&gt;在映射快捷方式时,通常会使用“我们按ENTER键”这样的内容。它曾经以这种方式工作,甚至在Vim 7.3中。在Vim 7.4中,至少在我的Linux编译版本(没有源代码更改)和vanilla-from-the-Windows安装程序版本(当然在Windows中运行这个版本)中,它不再起作用了。这破坏了插件和我自己的代码。

我一直googling这个问题,但我找不到它。我错过了什么?

以下是“echo&amp; compatible”的结果:

0

以下是查看问题的简便方法:

nmap r iHola<CR><ESC>

然后按“r”,一个不错的

Hola<CR><ESC> 

插入文件中。在Vim 7.3中,只能在文件中插入“Hola”和新行。

以下是“:version”的输出

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Oct 19 2013 17:58:08)
Huge version with GTK2 GUI.  Features included (+) or not (-):
+arabic          +cryptv          +file_in_path    +linebreak       +mouse_sgr       +python          +tag_binary      +viminfo
+autocmd         +cscope          +find_in_path    +lispindent      -mouse_sysmouse  -python3         +tag_old_static  +vreplace
+balloon_eval    +cursorbind      +float           +listcmds        +mouse_urxvt     +quickfix        -tag_any_white   +wildignore
+browse          +cursorshape     +folding         +localmap        +mouse_xterm     +reltime         -tcl             +wildmenu
++builtin_terms  +dialog_con_gui  -footer          +lua             +multi_byte      +rightleft       +terminfo        +windows
+byte_offset     +diff            +fork()          +menu            +multi_lang      +ruby            +termresponse    +writebackup
+cindent         +digraphs        +gettext         +mksession       -mzscheme        +scrollbind      +textobjects     +X11
+clientserver    +dnd             -hangul_input    +modify_fname    +netbeans_intg   +signs           +title           -xfontset
+clipboard       -ebcdic          +iconv           +mouse           +path_extra      +smartindent     +toolbar         +xim
+cmdline_compl   +emacs_tags      +insert_expand   +mouseshape      -perl            -sniff           +user_commands   +xsmp_interact
+cmdline_hist    +eval            +jumplist        +mouse_dec       +persistent_undo +startuptime     +vertsplit       +xterm_clipboard
+cmdline_info    +ex_extra        +keymap          -mouse_gpm       +postscript      +statusline      +virtualedit     -xterm_save
+comments        +extra_search    +langmap         -mouse_jsbterm   +printer         -sun_workshop    +visual
+conceal         +farsi           +libcall         +mouse_netterm   +profile         +syntax          +visualextra
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "$VIM/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/usr/share/vim"

问题:为什么&lt; cr&gt;在Vim 7.4中不起作用?

1 个答案:

答案 0 :(得分:3)

<CR>在Vim 7.4中完美运行。这是您设置中的内容。

我会冒一些插件将<CR>映射到其他内容的危险。

无论如何,一般而且正是因为这里的虚假不需要的重映射,所以建议始终使用:map命令的非重映射变体。这应该可以解决你的问题。

:nnoremap r iHola<CR><ESC>

在阅读@ romainl的评论后,我潜入'cpoptions'并找到了禁用密钥表示法的< cpo-flag。因此,重置'cpo'至少应该消除这种可能性。

:set cpo&vim