尝试在vim命令行窗口中返回正常模式时出错

时间:2011-01-17 05:38:45

标签: vim macvim

当我在vim中打开用于编辑复杂命令行的命令行窗口时,我希望能够像在任何其他缓冲区中那样来回进出插入/正常模式进行编辑。 (那是命令行窗口的重点,对吧?那我可以这样做吗?)但是,当我按下ESC返回正常模式时,我得到了这个:

Error detected while processing function <SNR>15_CloseStackPop:
line    3:
E11: Invalid in command-line window; <CR> executes, CTRL-C quits:         pclose

我正试图解决这个问题,但我没有太多可以继续下去。 vim --noplugin似乎没有这个问题,所以它显然是我加载的插件之一,但是哪一个?我有很多。 “第3行”的文件是什么? “E11”是什么意思?

2 个答案:

答案 0 :(得分:4)

事实证明这是'autoclose' plugin中的一个错误。我从pclose函数中删除了对<SID>CloseStackPop的引用,现在命令行模式下的Escape工作正常。

如果其他人遇到此问题:插件中的函数可以使用<SID>定义,其中(在源代码中)看起来像<SID>Foo,但Vim看起来像<SNR>4321_Foo 。我正在寻找15_CloseStackPop,假设<SNR>是特别的东西,但是当我刚刚做了grep CloseStackPop -r ~/.vim/plugins时,这个有问题的插件就会立即出现。

答案 1 :(得分:1)

尝试使用Ctrl + C作为Escape的同义词。还要检查.vimrc以获取插件。这不是vi的标准行为。如果我是你,我不会使用任何插件,除非我完全确定他们做了什么。也许从头开始并重新安装你完全确定的那些。

相关问题