6

Я использую Emacs на OSX (Emacs24), и иногда мне приходится редактировать файлы на подключенном томе sshfs. Однако интеграция Emacs с vc - особенно git - ДЕЙСТВИТЕЛЬНО медленна при монтировании sshfs.

Я хотел бы выборочно отключить vc-mode, либо в конфигурации, либо с помощью .dir-locals.el. Как я могу это сделать?

4 ответа4

5

Как упоминалось в pmr, вы можете удалить git из списка бэкендов.

Список бэкэндов по умолчанию :(RCS CVS SVN SCCS Bzr Git Hg Mtn Arch)

Существуют разные способы установки переменных в emacs.

Просто отредактируйте файл ~/.emacs и добавьте следующие две строки, чтобы добиться цели (обратите внимание, Git удален из списка)

;; Disable git backend to speed up sshfs file load among other things
(setq vc-handled-backends (quote (RCS CVS SVN SCCS Bzr Hg Mtn Arch)))
0

Я бы попробовал изменить переменную vc-handled-backends, которую моя версия Emacs описывает как:

vc-handled-backends - это переменная, определенная в `vc-hooks.el '. Его значение (RCS CVS SVN SCCS Bzr Git Hg Mtn Arch)

Документация: Список бэкэндов контроля версий, для которых будет использоваться VC. Записи в этом списке будут опробованы, чтобы определить, находится ли файл под таким контролем версий. Удаление записи из списка предотвращает активацию VC при посещении файла, управляемого этим бэкэндом. Пустой список полностью отключает VC.

Вы можете настроить эту переменную.

Эта переменная была введена или ее значение по умолчанию было изменено в версии 23.1 Emacs.

0

Я думаю, что наилучшим способом действий будет написание обходного совета для vc-git-registered (или даже для vc-registered или vc-find-file-hook).

Там вы бы проверили путь к файлу или значение некоторой переменной, которая будет установлена через .dir-locals.el .

0
(setq vc-ignore-dir-regexp
      (format "\\(%s\\)\\|\\(%s\\)"
              vc-ignore-dir-regexp
              tramp-file-name-regexp))

при условии, что вы смонтировали материал в /tmp/mnt он должен работать, добавив еще одну строку форматирования \\|\\(%s\\) и добавив /tmp/mnt/* в список строк

(setq vc-ignore-dir-regexp (format "\\(%s\\)\\|\\(%s\\)\\|\\(%s\\)"
                                     vc-ignore-dir-regexp
                                     tramp-file-name-regexp
                                     "/tmp/mnt/*"))

источник

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .