1

在 Vim 中,<cr> 在映射快捷方式时习惯上用来表示“这里我们按下 ENTER 键”。即使在 Vim 7.3 中,它也曾经以这种方式工作。在 Vim 7.4 中,至少在我的 Linux 编译版本(没有源代码更改)和 vanilla-from-the-Windows-installer 版本(当然,在 Windows 中运行)中,不再工作了。这打破了插件和我自己的代码的地狱。

我一直在谷歌搜索这个问题,但我找不到它。我错过了什么?

以下是“回声&兼容”的结果:

0

这是查看问题的简单方法:

nmap r iHola<CR><ESC>

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

Hola<CR><ESC> 

被插入到文件中。在 Vim 7.3 中,您只会在文件中插入“Hola”,并添加一个新行。

这是“:版本”的输出

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"

问题:为什么 <cr> 在 Vim 7.4 中不起作用?

4

1 回答 1

3

<CR>在 Vim 7.4 中完美运行。这是你的设置中的东西。

我会冒险某些插件已映射<CR>到其他东西。

无论如何,通常并且正是由于此处的这种虚假的不需要的重新映射,建议始终使用该:map命令的非重新映射变体。这应该可以解决您的问题。

:nnoremap r iHola<CR><ESC>

在阅读了@romainl 的评论后,我深入'cpoptions'研究并发现了禁用键符号的<cpo 标志。因此,重置'cpo'至少应该消除这种可能性。

:set cpo&vim
于 2013-10-20T10:52:40.833 回答