当我执行git commit --verbose时,在sublime text 2中将语法设置为diff

时间:2015-03-08 07:13:32

标签: git syntax sublimetext2

我采取的第一步是设置git以使用Sublime Text 2作为我的编辑器。

git config --global core.editor "subl -n -w"

每次我执行'git commit --verbose'时都会打开Sublime Text 2,但是如何让Sublime Text 2自动打开已设置diff语法的COMMIT_EDITMSG文件?

我知道一个解决方案是使用diff语法设置所有纯文本文件打开,但我不想这样做,因为除了来自COMMIT_EDITMSG的纯文本文件不应该有diff语法。< / p>

非常感谢你帮助我!

1 个答案:

答案 0 :(得分:0)

这可以通过一个简单的插件来实现,该插件在加载文件时捕获并根据文件名设置适当的语法。

要执行此操作,请从菜单中选择Tools > New Plugin...,将示例代码替换为以下代码,然后将其保存为Sublime默认位置的py文件(例如{{1} }}):

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') 结尾的文件时,语法将自动设置为Diff语法。

此插件也 MOSTLY 与Sublime Text 3一起使用,但菜单命令的位置改为COMMIT_EDITMSG

这里需要注意的是,在Sublime Text 2中,编辑器的启动包括在从命令行执行命令(例如打开文件)之前加载所有插件。)

在Sublime Text 3中,启动更加简化,因为编辑器启动并在插件仍在加载时变得可用。这样可以加快启动速度,因为还没有等待加载插件,但这意味着在加载自定义插件之前文件已经打开。

因此,虽然这可以在Sublime Text 3中使用,但只有在Sublime已经运行并且如果命令导致Sublime重新启动时它才会起作用。它将起作用。