Как отключить запрос «Нажмите клавишу ВВОД или введите команду для продолжения» в Vim? - PullRequest
93 голосов
/ 21 мая 2009

Есть ли способ отключить запрос «Нажмите клавишу ВВОД или введите команду для продолжения», который появляется после выполнения внешней команды?

РЕДАКТИРОВАТЬ: Найден обходной путь: добавьте дополнительные <CR> к ярлыку в моем .lvimrc.

map <F5> :wall!<CR>:!sbcl --load foo.cl<CR><CR>

Есть идеи получше?

Ответы [ 15 ]

0 голосов
/ 04 июня 2019

На моей стороне решение было , чтобы использовать silent чаще в цепочке команд .

В частности, .vimrc имел:

nnoremap M :silent make\|redraw!\|cc<CR>

Это было изменено на:

nnoremap M :silent make\|silent redraw!\|silent cc<CR>

Раньше "Press ENTER" появлялся не всегда, но раздражающе часто. Дополнительные silent с исправили это. (Похоже, что silent не требуется на redraw!, поскольку :cc вызвало сообщение "Нажмите ENTER".)

Недостатком этого изменения является отсутствие вывода :cc, так что вы должны догадаться, в чем ошибка. маленький твик исправляет это:

nnoremap M :silent make\|redraw!\|cw\|silent cc<CR>

Это делает список ошибок QuickFix (вывод make) автоматически появляются (и, с помощью vim-magic, исчезают при отсутствии ошибок).

FYI:

Мотивация этого M -картинга - просто нажать M в обычном режиме, чтобы:

  • сохранить редактирование (при использовании make все находится под git -контроль в любом случае)
  • invoke make
  • и сразу перейти к первой ошибке или предупреждению

Мои Makefile обычно строятся так, что это занимает доли секунды.

С некоторыми изменениями это можно применить и к рабочим нагрузкам не C типа:

В .vimrc добавить

set efm+=#%t#%f#%l#%c#%m#

Это позволяет vim интерпретировать такие сообщения, как следующие, для :cc (ошибка дисплея):

#E#file#line#column#message#
#W#file#line#column#message#
#I#file#line#column#message#

(E ошибки, W arnings, I nfo, на основе vim magic)

Пример использования этого для сценариев Python . (Извините, здесь нет копии, это другая история.)

0 голосов
/ 18 сентября 2018

Если ваша ошибка вызвана E303, то , создающий временный каталог в .vimrc файле , может исправить это.

После открытия любого файла напишите и введите:

:messages

Если есть ошибки, появится сообщение.

Если вы видите E303 (Ошибка 303) «Невозможно открыть файл подкачки для« {имя_файла} », восстановление невозможно», это может означать, что существует старая попытка восстановить файл подкачки (скорее всего, утерян или отсутствует) в системе.

Чтобы исправить это, создайте временный каталог в файле .vimrc.

Чтобы найти местоположение файла .vimrc, введите и введите его:

$ locate .vimrc
/root/.vimrc

Открыть файл $ vi .vimrc

Добавить это в конец файла:

set directory=.,$TEMP

Сохранить и закрыть с помощью :wq

Наконец, перезагрузите профиль:

$ . /etc/profile

Попробуйте открыть любой файл с помощью VI. Проблема должна быть исправлена.

0 голосов
/ 31 января 2018
  • Если вы используете карту ключей, тогда ваша жизнь может быть намного проще, если добавить еще несколько в конец команды - но обычно 2 раза достаточно.
  • Но если вы выполняете команду из командной строки vim. Тогда это немного сложно. Вы можете добавить ключевое слово silent перед вашей собственно командой. Он вернет вас в окно vim автоматически после выполнения команды. Но вам все равно нужно вручную выполнить redraw, так как некоторые окна, такие как NERD_Tree, должны быть перерисованы.

    • В этом случае попробуйте следовать инструкциям из справочной документации vim:

      Чтобы уменьшить количество запросов ввода-ввода:

      • Установите «cmdheight» на 2 или выше.
      • Добавить флаги в shortmess.
      • Сброс «showcmd» и / или «линейки».
    • Эта ссылка предоставляет другой выход. Поместите это в свой файл vimrc

      command! -nargs=1 Silent
      \   execute 'silent !' . 
      \ | execute 'redraw!'
      

И тогда вы можете использовать :Silent command как обычную команду.

0 голосов
/ 24 июля 2017

У меня похожая проблема, но когда я запускаю argdo, чтобы заменить одну и ту же строку в нескольких файлах, например,

 argdo %s/something/Something/eg|update

Мне постоянно приходилось нажимать на страницу.

Вы можете установить следующую опцию перед запуском скрипта, чтобы вместо многих подсказок была только последняя подсказка

:set nomore
0 голосов
/ 04 января 2017

Это происходит со мной, если я сохраняю файл, который находится в каталоге, где у меня нет прав на запись в каталог. Я сделал chmod 777 для каталога (у меня уже были права на запись для самого файла), и сообщение «Нажмите ENTER» больше не отображается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...