ошибка при попытке вернуться в нормальный режим в окне командной строки vim - PullRequest
4 голосов
/ 17 января 2011

Когда я открываю окно командной строки для редактирования сложной командной строки в 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 ]

4 голосов
/ 17 января 2011

Оказывается, это была ошибка в плагине 'autoclose' .Я удалил ссылку на pclose из функции <SID>CloseStackPop, и теперь Escape в режиме командной строки работает нормально.

В случае, если у кого-то еще есть такая проблема: функции в плагинах могут быть определены с помощью <SID>, который (в исходном коде) просто выглядит как <SID>Foo, но для Vim выглядит как <SNR>4321_Foo.Я искал 15_CloseStackPop, предполагая, что <SNR> был чем-то особенным, но когда я только что сделал grep CloseStackPop -r ~/.vim/plugins, плагин-нарушитель появился сразу.

1 голос
/ 17 января 2011

Попробуйте Ctrl + C как синоним Escape. Также проверьте .vimrc для плагинов. Это не стандартное поведение для vi. Если бы я был тобой, я бы не использовал никаких плагинов, если бы не был абсолютно уверен, что они делают Возможно, начните с нуля и переустановите те, в которых вы абсолютно уверены.

...