OSX(Emacs24)でEmacsを実行していますが、マウントされたsshfsボリューム上のファイルを編集しなければならない場合があります。ただし、Emacsのvc統合(具体的にはgit)は、sshfsマウントよりも非常に低速です。
構成中または.dir-locals.elを使用して、vc-modeを選択的に無効にしたい。どうやってやるの?
Pmrが述べたように、バックエンドのリストからgitを削除できます。
バックエンドのデフォルトリスト は(RCS CVS SVN SCCS Bzr Git Hg Mtn Arch)
です
Emacsで変数を設定するには さまざまな方法 があります。
~/.emacs
ファイルを編集し、次の2行を追加するだけで、うまくいくはずです(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)))
私のバージョンのEmacsが説明している変数vc-handled-backendsを変更してみます:
vc-handled-backendsは、 `vc-hooks.el 'で定義されている変数です。その値は(RCS CVS SVN SCCS Bzr Git Hg Mtn Arch)です。
ドキュメント:VCが使用されるバージョン管理バックエンドのリスト。ファイルがその種のバージョン管理下にあるかどうかを判断するために、このリストのエントリが試行されます。からエントリを削除するリストは、そのバックエンドによって管理されているファイルにアクセスするときにVCがアクティブ化されないようにします。空のリストは、VCを完全に無効にします。
この変数はカスタマイズできます。
この変数は、Emacsのバージョン23.1で導入されたか、デフォルト値が変更されました。
around-advice for vc-git-registered
(またはvc-registered
またはvc-find-file-hook
)を書くことが最善の行動だと思います。
そこで、.dir-locals.el
を介して設定されるファイルパスまたは変数の値を確認します。
_(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/*"))
_