Vim найти в файлах ярлык из команды - PullRequest
0 голосов
/ 11 сентября 2018

Привет! Я использую vimgrep для поиска текста в проекте.

Однако это немного медленно, потому что я должен писать это каждый раз:

vimgrep /text/ **/*.* | cwindow

Есть ли способ отобразить это, например, в C-shift-F и показать текстовое поле.

После этого, когда я нажму Enter, он выполнит команды vimgrep.

Это сэкономит много времени

Спасибо

1 Ответ

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

Vim обладает широкими возможностями настройки (что является одной из основных причин его популярности), поэтому существует несколько возможностей обеспечить ярлык:

неполное сопоставление

Отображение не обязательно содержит полноекоманда.Вы можете просто подготовить командную строку и оставить курсор в определенном месте, чтобы вы могли заполнить оставшуюся часть и запустить (Ex) команду с помощью Enter .Например:

:nnoremap <Leader>f :vimgrep // **/*.* <Bar> cwindow<Home><Right><Right><Right><Right><Right><Right><Right><Right><Right>

Концевые клавиши позиционируют курсор между //, чтобы вы могли заполнить text и затем выполнить команду.

Примечание.<C-S-f> отображение будет таким же, как <C-f> (неудачное ограничение в текущей реализации), и, следовательно, переопределит полезную встроенную команду.Вместо этого я использовал <Leader>f (где по умолчанию для этой клавиши \ ; cp. :help <Leader>).

пользовательская команда

Это уже хорошо,но предполагая, что у нас никогда не будет необходимости редактировать другие части команды, мы можем сократить ее до пользовательской команды, например, :FindText:

command! -nargs=1 FindText vimgrep /<args>/ **/*.* | cwindow

С помощью этого вы можете искать через :FindText text.Если вы по-прежнему предпочитаете отображение, оно станет

:nnoremap <Leader>f :FindText<Space>

Другие преимущества пользовательских команд состоят в том, что их легче вызывать из истории командной строки (поскольку они отличаются от других команд :vimgrep, которые вы могли быиспользовать), и вы создаете библиотеку команд редактирования более высокого уровня, которые со временем могут использоваться повторно для создания еще более команд более высокого уровня, что делает редактирование более эффективным.

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