2

在 Sublime Text 中,有没有办法可以将选定的文本提取到单独的文件中?

我经常在 LaTeX 中这样做。考虑以下文件:

主文件

\section{Introduction}
...
...

\section{Conclusion}

我希望能够选择从Introduction直到前一行的文本Conclusion,右键单击然后说“提取到文件”(有点类似于 Visual Studio 中“提取方法”的工作方式)。有没有办法使用任何快捷方式来实现这一点?

奖励:提取完成后,将提取的文本替换为自定义文本,例如提取文本的文件的名称在\input{introduction}哪里。introduction

4

1 回答 1

1

没有内置任何东西,但使用插件很容易做到。请注意,以下内容经过最低限度的测试,无法很好地处理 ST 中的所有内容。话虽这么说,它应该是你开始的一个很好的基础。为了安全起见,在大量使用它之前,我会将所有内容都放入本地 git 存储库中。讨厌这会导致失去工作。为了安全起见,我将要替换的内容复制到剪贴板,但如果您对它有信心,您可以删除sublime.set_clipboard(content)

import sublime
import sublime_plugin
import os
import re

class ExtractAndInput(sublime_plugin.TextCommand):
    def run(self, edit):
        view = self.view
        self.region = view.sel()[0]
        content = view.substr(self.region)
        sublime.set_clipboard(content)
        match = re.search(r"\\section{(.+?)}", content)
        if match:
            replace = "\\input{%s}" % match.group(1)
            view.replace(edit, view.sel()[0], replace)
            current = view.file_name()
            new_file = "%s.tex" % match.group(1)
            path = os.path.normpath(os.path.join(current, "..", new_file))
            with open(path, "a") as file_obj:
                file_obj.write("% Generated using ExtractAndInput Plugin\n")
                file_obj.write(content)

保存插件后,您可以创建一个键绑定到extract_and_input. 您还可以通过创建具有以下内容的Context.sublime-menuin来添加上下文菜单。Packages/User

[
    { "caption": "Extract to File", "command": "extract_and_input"}
]
于 2013-09-12T02:42:08.673 回答