【发布时间】:2011-08-10 13:35:59
【问题描述】:
我在 sshfs 和 git 存储库上使用 emacs。我喜欢使用 git 命令行,因此对于这个项目,我不需要启用 vc-git。如何防止.emacs命令加载vc-git?
【问题讨论】:
我在 sshfs 和 git 存储库上使用 emacs。我喜欢使用 git 命令行,因此对于这个项目,我不需要启用 vc-git。如何防止.emacs命令加载vc-git?
【问题讨论】:
这也有效:
(setq vc-ignore-dir-regexp ".+")
或
(setq vc-ignore-dir-regexp "")
@Stefan 在评论中建议
这将加快读取和保存文件的速度。你可以提供你想要的正则表达式,这样你就可以让 git 对某些目录起作用,而对其他目录不起作用。
【讨论】:
".+" 我虽然那样。需要转义,它正在工作,因为它匹配 .git 目录。
".+" 表示“忽略名称中至少包含一个非 LF 字符的任何目录”。 IOW,它忽略了所有目录,除了名为""、"\n"、"\n\n"、... dirs”,听起来更接近您的建议。
从find-file-hook 中删除它。这应该禁用后端:
(remove-hook 'find-file-hook 'vc-find-file-hook)
您可能需要在上述行之前添加(require 'vc) 才能获得正确的时机。或者也许像这样包装它:
(eval-after-load "vc" '(remove-hook 'find-file-hook 'vc-find-file-hook))
把握时机。
【讨论】:
'vc-refresh-state在钩子里,所以我也把它删除了(remove-hook 'find-file-hook 'vc-refresh-state)
或者你可以在 emacs 中禁用整个版本控制
;;disable the version control
(setq vc-handled-backends nil)
为我工作。
【讨论】:
从 vc-mode 处理的后端列表中删除 git:
(delete 'Git vc-handled-backends)
或删除所有源代码管理挂钩:
(setq vc-handled-backends ())
【讨论】:
customize来修改或清除。
我也非常推荐magit(一种不同的 emacs git 模式。)我也更喜欢命令行,但这个做得非常好,允许您编写更多代码并减少“git”。特别是暂存和取消暂存代码/在发送它们之前查看您的更改的差异、查看存储以及在 emacs 中进行拉/推非常棒。
【讨论】: