Как сделать выход Ctrl-P, когда я случайно пытаюсь открыть открытый файл?

Иногда, когда я использую VIM, я пытаюсь открыть уже открытый файл. Это происходит потому, что у меня очень быстрый рефлекс, когда я думаю о редактировании файла, что быстрее, чем проверка того, в каком файле я нахожусь. Проблема в том, что CtrlP жалуется и блокирует меня большим сообщением «НЕТ ЗАПИСЕЙ», делая мне нужно нажать <C-c>, чтобы выйти из него. Это серьезно нарушает поток. Я просто хочу, чтобы он закрывался, когда нет записей - или, по крайней мере, когда я нажимаю <enter>, что я всегда делаю в любом случае.

Это возможно?

http://o7.no/1jYmhYl


person MaiaVictor    schedule 07.03.2014    source источник
comment
Как насчет того, чтобы изменить свои вредные привычки вместо того, чтобы искать способ смягчить их воздействие?   -  person romainl    schedule 07.03.2014
comment
Это вовсе не плохая привычка, она позволяет ускорить рабочий процесс во многих ситуациях, поскольку устраняет необходимость чтения состояния (текущий открытый файл).   -  person MaiaVictor    schedule 07.03.2014
comment
Это плохая привычка, потому что она нарушает ваш рабочий процесс, и вы оказываетесь здесь, спрашивая решение у совершенно незнакомых людей. Если бы это было хорошей привычкой, вы бы не просили о помощи.   -  person romainl    schedule 07.03.2014
comment
Если это не работает, как это может быть хорошей привычкой? В любом случае, действительно хорошая привычка — обращаться за помощью или запрашивать функцию в плагине Vim на трекере этого плагина, а не на общем сайте, таком как SO.   -  person romainl    schedule 07.03.2014
comment
У тебя плохой день? Кстати, мне удалось решить свою проблему. Любой заинтересованный читатель может проверить мой ответ.   -  person MaiaVictor    schedule 07.03.2014
comment
Пожалуйста, поймите сварливость @romainl; ваш вопрос не свидетельствует о каких-либо исследованиях, это просто (очень конкретное) описание проблемы, и поэтому он не подходит для этого сайта. Я благодарю вас за то, что вы нашли и опубликовали ответ, но, пожалуйста, отнесите его автору CtrlP (а затем удалите весь вопрос здесь).   -  person Ingo Karkat    schedule 07.03.2014
comment
Только вы оба не правы. Этот вопрос соответствует рекомендациям SO. Если вы так не думаете, правильный канал, чтобы выразить это, — отметить его для модерации или проголосовать за закрытие по ссылкам под основными сообщениями. Не стесняйтесь использовать их.   -  person MaiaVictor    schedule 09.03.2014


Ответы (1)


Мне удалось решить проблему, установив исправление ctrlp.vim на .vim/bundle/ctrlp.vim/autoload/. Вам нужно добавить эту функцию в любом месте:

fu! s:OpenExit()
    cal s:AcceptSelection("e")
    cal s:PrtExit()
endf

и это после строки 144 (одна с PtrExit()):

\ 'OpenExit()':           ['<cr>'],

Также удалите строку '<cr>' из строки 123 (с AcceptSelection("e")). Это гарантирует, что нажатие enter покинет CtrlP.

В любом случае, что более интересно, так это то, что вы можете отредактировать функцию Update() в этом файле, чтобы открыть файл, как только будет найдено только 1 совпадение, что сделает это быстрее, чем его поиск.

person MaiaVictor    schedule 07.03.2014