我采取的第一步是设置 git 以使用 Sublime Text 2 作为我的编辑器。
git config --global core.editor "subl -n -w"
每次我执行“git commit --verbose”时都会打开 Sublime Text 2,但是如何让 Sublime Text 2 自动打开已设置差异语法的 COMMIT_EDITMSG 文件?
我知道一种解决方案是将所有纯文本文件设置为使用差异语法打开,但我不想这样做,因为来自 COMMIT_EDITMSG 的纯文本文件以外的纯文本文件不应该具有差异语法。
非常感谢你帮助我!
最佳答案
这可以通过一个简单的插件来实现,该插件可以在加载文件时捕获并根据文件名设置适当的语法。
为此,从菜单中选择Tools > New Plugin...
,将示例代码替换为下面的代码,然后将其保存为 py
文件Sublime 默认的位置(例如 diff_syntax_setter.py
):
import sublime, sublime_plugin
class DiffListener(sublime_plugin.EventListener):
def on_load(self, view):
if view.file_name() is not None:
if view.file_name().endswith("COMMIT_EDITMSG"):
view.settings().set("syntax", 'Packages/Diff/Diff.tmLanguage')
现在每次加载以名称 COMMIT_EDITMSG
结尾的文件时,语法将自动设置为 Diff 语法。
虽然菜单命令的位置已更改为 Tools > Developer > New Plugin...
代替。
这里需要注意的是,在 Sublime Text 2 中,编辑器的启动包括在从命令行执行命令(例如打开文件)之前加载所有插件。
在 Sublime Text 3 中,启动更加简化,因为编辑器在插件仍在加载时启动并可用。这使得启动速度更快,因为不会等待插件加载,但这意味着在加载自定义插件之前文件已经打开。
因此,虽然这在 Sublime Text 3 中有效,但它仅在 Sublime 已经运行时有效,如果命令导致 Sublime 重新启动则无效。
关于git - 当我执行 git commit --verbose 时,将语法设置为 diff in sublime text 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28924023/