Как искать текст в файле определенного типа / расширения в vim с помощью FZF и Ag?
Я недавно начал использовать vim и какое-то время играл с ним.
я использую FZF
с Ag
чтобы выполнить поиск файлов и поиск в файлах. но я не могу искать файлы определенных типов, например
я хочу поискать "getUserInfo"
только в .js
файлы.
вот мои конфиги
bashrc
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
export FZF_DEFAULT_COMMAND='ag -g ""'
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
init.vim
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'junegunn/fzf.vim'
я просто использую :Ag
в vim для поиска по всему каталогу
3 ответа
Вы можете использовать --js
чтобы ограничить поиск файлами JavaScript:
$ ag getUserInfo --js
Видеть $ man ag
.
Чтобы использовать поиск по типу файла с помощью FZF, вам необходимо добавить индивидуальную конфигурацию в ваш .vimrc. Например, если вы хотите искать только файлы javascript, вы добавляете это:
autocmd! VimEnter * command! -nargs=* -complete=file AgJS :call fzf#vim#ag_raw('--js '. <q-args> .' ~/myRepo/src/')
Обратите внимание на спецификацию каталога (~ / myRepo / src /). Чтобы вызвать такой поиск, вы должны использовать
:AgJS
команда. Эта команда, в свою очередь, может быть привязана к другому отображению.
Настройка обсуждается в документации плагина: https://github.com/junegunn/fzf.vim#example-customizing-files-command
Ваш конкретный запрос функции обсуждался в проблеме: https://github.com/junegunn/fzf.vim/issues/92
Оба других ответа не сработали для меня, после того, как я раскопал связанные проблемы с тем, который связал Грегори, я нашел решение, которое сработало для меня:
let s:ag_options = ' --python '
command! -bang -nargs=* Agpy call fzf#vim#ag(<qargs>,s:ag_options,<bang>0)
Если вы напечатаете
ag --list-file-types
В терминале вы можете определить, чем заменить --python в приведенном выше примере, чтобы захватить правильный тип файла.
Наконец, вы просто набираете: Agpy или как вы там называете команду в vim для выполнения.
Это также выполняется в любом текущем рабочем каталоге, что предпочтительнее, чем только фиксированный каталог в другом примере.