Самый простой вариант - настроить пользовательский параметр grep-find-ignored-directories
.
Возможно, вы не захотите ограничивать его значением js2-mode
. Если вы были , чтобы ограничить это таким образом, вы могли бы go что-то вроде:
(add-hook 'js2-mode-hook 'my-js2-mode-hook)
(defun my-js2-mode-hook ()
"Custom behaviours for `js2-mode'."
(require 'grep)
(setq-local grep-find-ignored-directories
(cons "node_modules" (default-value 'grep-find-ignored-directories))))
Однако, безусловно, будут другие буферы, из которых вы могли бы инициировать rgrep
все еще находясь в том же проекте.
Локальные переменные каталога предоставляют другой подход (который может тривиально учитывать все буферы доступа к файлам в проекте, но будет применяться только к определенным буферам, не посещающим файлы).
На практике, если вы не чувствуете, что node_modules
может быть именем каталога, в котором вы хотели бы искать в некоторых типах проектов, я был бы склонен просто установить глобальное значение.
Я также буду ссылаться на эту функцию grep-find-ignored-directories
:
Если элемент является cons-ячейкой, автомобиль вызывается из каталога поиска, чтобы определить, не должен ли быть cdr.
В принципе это дает возможность фильтровать каталоги в каждом конкретном случае. Однако это не самая простая вещь для использования - для этого необходимо, чтобы у уже был код, позволяющий определить, является ли данный каталог частью проекта, для которого node_modules
был безопасным / небезопасным, и что Код снова должен работать в буфере любого типа, поэтому вы все еще сталкиваетесь с некоторыми из тех же проблем. Если бы вы использовали некоторые другие проектно-ориентированные библиотеки, то у вас мог бы быть какой-то существующий простой способ создания проекта type , который затем можно было бы использовать в пользовательской функции предиката для этой расширенной фильтрации.