快捷方式改变了一行字,以垂直列表中崇高的文本2(Shortcut to change a line

2019-08-19 20:44发布

是否有可能使这个标题1号线通过使用键盘快捷键空格分隔每个单词或符号的项目列表。 所以,我可以选择标题,然后打一个快捷方式,它将使标题类似下面的项目清单:

试图保存键绑定文件。

Answer 1:

没有内置的,但你可以用插件做到这一点。

import sublime
import sublime_plugin
import re


class SplitLineCommand(sublime_plugin.TextCommand):
    def run(self, edit, split_pattern=" "):
        view = self.view
        cursors = view.sel()
        if len(cursors) == 1:
            cursor = cursors[0]
            begin_offset = 0
            end_offset = 0
            if cursor.empty():
                region = view.line(cursor)
                content = view.substr(region)
                new_content = re.sub(split_pattern, "\n", content)

                view.replace(edit, region, new_content)
            else:
                region = cursor
                content = view.substr(region)
                new_content = ""
                if view.line(region).begin() != region.begin():
                    new_content = "\n"
                    begin_offset = 1
                new_content += re.sub(split_pattern, "\n", content)

                if view.line(region).end() != region.end():
                    new_content += "\n"
                    end_offset = - 1

            view.replace(edit, region, new_content)
            cursors.clear()
            cursors.add(sublime.Region(region.begin() + begin_offset, region.begin() + len(new_content) + end_offset))
            view.run_command("split_selection_into_lines")

然后,您可以在您的键绑定文件中添加以下内容。

[
    { "keys": ["f8"], "command": "split_line", "args": {"split_pattern": " "}}
]

当然,改变的关键就在你想要的东西。 你实际上并不需要args如果你只是使用空间的说法。 它默认了这一点。 我只是包括它的完整性。

编辑:我已经更新了插件,所以它现在处理的选择,尽管它没有在这一点上处理多个游标。

编辑2如果它不能正常工作,尝试打开控制台,然后输入view.run_command("split_line") 这将运行在任何视图你切换到控制台均事先命令。 你知道这样,如果命令实际工作。 如果没有,则是与插件有问题。 如果确实如此,那么与密钥绑定的一个问题。



文章来源: Shortcut to change a line of words to a vertical list in Sublime Text 2