这是我对https://github.com/mneuhaus/SublimeFileTemplates的非官方修改,它允许我insert-a-file-here
使用快速面板。它适用于 OSX 操作系统(运行 Mountain Lion)。
到目前为止,我看到的唯一缺点是无法正确翻译\\
表单文件中的双斜杠——它只是作为单斜杠插入\
。在我的 LaTex 表单文件中,双斜杠\\
表示行尾,如果前面有~
. 解决方法是在实际表单文件中的每次出现处插入一个额外的斜线(即,放置三个斜线,但要理解运行插件时只会插入两个斜线)。表单文件需要是 LF 结尾,我使用的是 UTF-8 编码——CR 结尾没有正确翻译。稍作修改,也可以有多个表单文件目录和/或文件类型。
import sublime, sublime_plugin
import os
class InsertFileCommand(sublime_plugin.WindowCommand):
def run(self):
self.find_templates()
self.window.show_quick_panel(self.templates, self.template_selected)
def find_templates(self):
self.templates = []
self.template_paths = []
for root, dirnames, filenames in os.walk('/path_to_forms_directory'):
for filename in filenames:
if filename.endswith(".tex"): # extension of form files
self.template_paths.append(os.path.join(root, filename))
self.templates.append(os.path.basename(root) + ": " + os.path.splitext(filename)[0])
def template_selected(self, selected_index):
if selected_index != -1:
self.template_path = self.template_paths[selected_index]
print "\n" * 25
print "----------------------------------------------------------------------------------------\n"
print ("Inserting File: " + self.template_path + "\n")
print "----------------------------------------------------------------------------------------\n"
template = open(self.template_path).read()
print template
view = self.window.run_command("insert_snippet", {'contents': template})
sublime.status_message("Inserted File: %s" % self.template_path)