Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在vim命令行窗口中尝试返回正常模式时出错_Vim_Macvim - Fatal编程技术网

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

在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

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

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
而不是将其删除。它负责在完成后关闭预览窗口。我在做同样的事情时也犯了同样的错误: