beldmit: (Программизм)
[personal profile] beldmit
Наконец-то я настроил при использовании grep из vim игнорировать .svn

set grepprg=grep\ -n\ --exclude=tags\ --exclude=TAGS\ --exclude-dir=.svn\ $*\ /dev/null

Собственно, переменную окружения GREP_OPTIONS, через которую я работал несколько лет, объявили deprecated (но пока не выпилили). А во всех советах игнорировали часть аргументов, в результате чего навигация по найденному из vim не работала. В таком виде - работает. Осталось .git туда же добавить, но это по необходимости.

Date: 2019-12-11 11:43 am (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
Есть такой плагин local vimrc.
Позволяет создать в каждом поддереве свой локальный файл конфигурации, который будет читаться vim-ом если он запускается внутри этого поддерева.

Я его себе поставил в основном ради конфигурации спелл-чекера, чтобы в каждом сеттинге иметь собственные локальные словари, ну и чтобы язык правильный автоматически включался.

Параметр $* тут значит то же самое, что в шелловских скриптах - в смысле "на это место будут подставлы все аргументы". При этом это не шелловский синтаксис, а вимовский. Описан, кстати в :help grepprg.

А /dev/null там нужен для того, чтобы если вдруг кто-то нечаянно наберет :grep без параметров, у него бы все нафиг не подвисло. Потому что по умолчанию grep будет ждать текста со стандартного ввода. Соотвественно, чтобы программа вовремя завершилась, у нее в аргуммента должен быть хоть один файл. Поэтому, туда добавлен в конец заведомо пустой /dev/null.

И еще - если у нас в командной строке grep указан ровно один файл, он не будет в выводе даже с -n сопровождать найденную строку именем файла (а не только номером строки). А если два и более - будет. Поэтому vim сумеет правильно найти куда курсор ставить. Независимо от числа файлов, в которых попросил искать пользователь. Того же эффекта можно в GNU grep добиться с помощью -H о чем честно рассказано в хелпе на grepprg, но /dev/null во-первых убивает двух зайцев разом, во-вторых работает с бо́льшим количеством разных grep.

Edited Date: 2019-12-11 11:45 am (UTC)

Profile

beldmit: (Default)
Dmitry Belyavskiy

December 2025

S M T W T F S
 123456
78910111213
14151617181920
2122 2324252627
28 29 3031   

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 2nd, 2026 03:10 pm
Powered by Dreamwidth Studios