Vim: игнорировать специальный путь в поиске


В моем файле .vimrc у меня есть две очень полезные строки:

set path=~/nbapp/**
set backupdir=~/nbapp/temp

Первая строка позволяет мне искать в моем каталоге проекта и подкаталогах. Вторая строка делает vim создавать резервные файлы в специальной временной папке, а не мешать мне, добавляя десятки файлов резервных копий с тем же именем, за исключением "~" в конце. Однако, поскольку временные файлы все еще находятся в папке "nbapp" (и я хочу сохранить их там, потому что они связаны с проектом), это означает, что они также будут найдены, когда я сделаю поиск, который иногда меня беспокоит, потому что я продолжаю искать результаты поиска, но обнаруживаю, что они находятся во временной папке.

Есть ли какой-либо возможный способ исключить пути из поиска (т.е. vimgrep)? Я хочу исключить папку temp.

С уважением,
Рафид

Ответы

Ответ 1

Используйте параметр "wildignore":

:set wildignore+=**/temp/**

или если вы хотите уточнить:

:set wildignore+=~/nbapp/temp/**

Это должно исключить все файлы в каталоге nbapp/temp в: find result.

Ответ 2

Вместо vimgrep я использую команду grep

:help grep

Я использую настройку

set grepprg=grep\ -nIh\ --exclude=tags\ --exclude=cscope.out

когда я хочу искать файлы, но исключая файлы тегов и файлы cscope. Вы можете изменить выше, чтобы не искать файлы, заканчивающиеся на ~. Я не думаю, что вы можете исключить папку с помощью grep (или, может быть, вы можете попробовать --exclude = ~/nbapp/temp/*, это может работать, я ее не тестировал).

Если это не сработает, я рекомендую использовать ack для grepprg вместо grep. ack как параметр ignore-dir = name, в котором вы можете явно игнорировать папку.

Ответ 3

Чтобы исключить некоторые каналы из :find и gf (например, node_modules) вы можете установить:

:set path=**
:set wildignore+=*/node_modules/*

Ответ 4

Например, в Ubuntu просто

sudo apt-get install ack-grep

sudo ln -s /usr/bin/ack-grep /usr/bin/ack

затем установите http://www.vim.org/scripts/script.php?script_id=2572

и теперь добавьте следующую строку в ваш .vimrc

noremap <C-f> :copen<CR>:Ack --ignore-dir #first_ignore_dir# --ignore-dir #second_ignore_dir# -ai 
  • его открытый кадр поиска по Ctr + F, получайте удовольствие

Ответ 5

set path-=~/nbapp/temp

- предпочтительный метод удаления записей пути, поскольку он защищает вас от обновлений vim, которые могут изменять значение "путь".