在vim命令行窗口中尝试返回正常模式时出错
当我在vim中打开用于编辑复杂命令行的命令行窗口时,我希望能够像在任何其他缓冲区中一样,在插入/正常模式中来回进行编辑。(这就是命令行窗口的要点,对吗?这样我就可以这样做了?)但是,当我按ESC键返回到正常模式时,我得到了以下结果:在vim命令行窗口中尝试返回正常模式时出错,vim,macvim,Vim,Macvim,当我在vim中打开用于编辑复杂命令行的命令行窗口时,我希望能够像在任何其他缓冲区中一样,在插入/正常模式中来回进行编辑。(这就是命令行窗口的要点,对吗?这样我就可以这样做了?)但是,当我按ESC键返回到正常模式时,我得到了以下结果: Error detected while processing function <SNR>15_CloseStackPop: line 3: E11: Invalid in command-line window; <CR> exec
Error detected while processing function <SNR>15_CloseStackPop:
line 3:
E11: Invalid in command-line window; <CR> executes, CTRL-C quits: pclose
处理功能15时检测到错误:
第3行:
E11:在命令行窗口中无效;执行,CTRL-C退出:pclose
我很想弄明白这一点,但我没有太多事情要做
vim--noplugin
似乎没有这个问题,所以它显然是我加载的插件之一,但是哪一个?我有很多。什么文件的第3行?“E11”是什么意思?尝试将Ctrl+C作为Escape的同义词。还要检查.vimrc中的插件。这不是vi的标准行为。如果我是你,我不会使用任何插件,除非我完全确定它们做了什么。也许从零开始,重新安装那些您完全确信的软件。事实证明,这是系统中的一个bug。我从CloseStackPop
函数中删除了对pclose
的引用,现在在命令行模式下Escape可以正常工作
如果其他人有这个问题:插件中的函数可以用
定义,它(在源代码中)看起来就像Foo
,但对Vim来说就像4321\u Foo
。我在寻找15\u CloseStackPop
,假设
是一个特殊的东西,但是当我刚刚做了一个grep CloseStackPop-r~/.vim/plugins
时,这个不合适的插件马上出现了。Ctrl+C在这个上下文中似乎不是Escape的同义词;Escape返回正常模式,Ctrl+C返回cmdline模式(与cmdwin相反)。您可能希望将pclose
更改为silent!pclose
而不是将其删除。它负责在完成后关闭预览窗口。我在做同样的事情时也犯了同样的错误: