如何在崇高文本中为用户的构建系统创建快捷方式?



我刚刚创建了一个名为XeLaTeX的构建系统,在Sublime Text的User目录下创建了一个名为XeLaTeX.sublime-build的文件,其内容为:

{
    "cmd": ["xelatex.exe","-synctex=1","-interaction=nonstopmode","$file_base_name"]
}
如果我想将我的F1键绑定到这个特定的构建系统,我应该怎么做?

注意:Ctrl + B,默认的构建系统不应该受到影响。也就是说,我可以使用Ctrl + B使用默认系统,同时也可以使用新系统F1键。


也许有另一种方法来实现这一点。将以下文本添加到Default(Windows).sublime-keymap将执行命令:

{"keys": ["f1"], "command": "exec", "args": {"cmd": ["xelatex.exe","-synctex=1","-interaction=nonstopmode","$file_base_name"]}},

但是,这里没有定义$file_base_name。是否有方法将当前文件(base_)名称传递给exec ?

我自己搞定了。

老实说,没有这样的方法通过键绑定传递当前文件名,也不可能使用键绑定来指定某个构建系统。因此,编写Python脚本是必要的。

只有三个步骤。

1。保存以下内容到/Data/Package/User/compile_with_xelatex.py:

import sublime, sublime_plugin
class CompileWithXelatexCommand(sublime_plugin.TextCommand):
   def run(self, edit):
      self.view.window().run_command('exec', {'cmd': ["xelatex.exe","-synctex=1","-interaction=nonstopmode", self.view.file_name()[:-4]]})

2。/Data/Packages/User/Default(<your-plat>).sublime-keymap添加一行

{"keys": ["f1"], "command": "compile_with_xelatex"},

3。用Sublime Text打开LaTeX源文件,然后按F1用XeLaTeX编译。

的确,这有点棘手,但它对我来说很有魅力。

构建系统的工作方式是在Tools -> Build System菜单中选择它们,或者使用选择器匹配特定的语法。如果要使用选择器,请将以下行添加到XeLaTeX.sublime-build文件中(确保在第一行之后添加逗号,,该文件需要是有效的JSON):

"selector": "text.tex.latex"

build命令已经绑定到CtrlBF7,但是如果您还希望它绑定到F1,打开Preferences -> Key Bindings-User并添加以下行,如果您已经有自定义键绑定:

{ "keys": ["f1"], "command": "build" }

如果文件为空,只需在文件的开头和结尾分别添加开始和结束方括号[ ],因为它也需要是有效的JSON。

现在,无论何时打开LaTeX文件,都应该能够按F1来构建它。如果由于某种原因它不能工作(例如,如果您有其他构建系统的LaTeX安装插件,如LaTeXTools),那么只需选择Tools -> Build Systems -> XeLaTeX,一切都应该正常工作。

你的例子将工作,如果你给参数"$file_basename"而不是"$file_base_name"

最新更新