【问题标题】:How does one disable vc-git in emacs?如何在 emacs 中禁用 vc-git?
【发布时间】:2011-08-10 13:35:59
【问题描述】:

我在 sshfs 和 git 存储库上使用 emacs。我喜欢使用 git 命令行,因此对于这个项目,我不需要启用 vc-git。如何防止.emacs命令加载vc-git?

【问题讨论】:

    标签: git emacs


    【解决方案1】:

    这也有效:

    (setq vc-ignore-dir-regexp ".+")
    

    (setq vc-ignore-dir-regexp "")
    

    @Stefan 在评论中建议

    这将加快读取和保存文件的速度。你可以提供你想要的正则表达式,这样你就可以让 git 对某些目录起作用,而对其他目录不起作用。

    【讨论】:

    • @Stefan 是的,应该是".+" 我虽然那样。需要转义,它正在工作,因为它匹配 .git 目录。
    • ".+" 表示“忽略名称中至少包含一个非 LF 字符的任何目录”。 IOW,它忽略了所有目录,除了名为"""\n""\n\n"、... dirs”,听起来更接近您的建议。
    【解决方案2】:

    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)
    【解决方案3】:

    或者你可以在 emacs 中禁用整个版本控制

    ;;disable the version control
    
    (setq vc-handled-backends nil) 
    

    为我工作。

    【讨论】:

      【解决方案4】:

      从 vc-mode 处理的后端列表中删除 git:

      (delete 'Git vc-handled-backends)
      

      或删除所有源代码管理挂钩:

      (setq vc-handled-backends ())
      

      【讨论】:

      • +1 (setq vc-handled-backends ()) 工作得很好。现在不仅 Emacs 启动更快,而且文件打开也更快了,谢谢!
      • 这个变量也可以使用customize来修改或清除。
      【解决方案5】:

      我也非常推荐magit(一种不同的 emacs git 模式。)我也更喜欢命令行,但这个做得非常好,允许您编写更多代码并减少“git”。特别是暂存和取消暂存代码/在发送它们之前查看您的更改的差异、查看存储以及在 emacs 中进行拉/推非常棒。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-25
        • 2012-09-07
        • 1970-01-01
        • 2012-11-24
        • 2023-04-06
        相关资源
        最近更新 更多