sublimetext3 - 崇高文本多光标快捷方式

标签 sublimetext3 shortcut

我是 emacs 的忠实用户,我非常喜欢不用鼠标就可以做任何事情的事实。我认为该功能使 emacs 非常高效。

我也是 Linux 上的 Sublime Text 的忠实粉丝。我喜欢您使用 Ctrl+left_mouse_clik 启用的多光标功能。 .我还发现可以点击Shift+alt+arrow_up_or_down在上面或下面的行上创建一个新光标。所以我想知道在崇高文本中是否有一种方法可以在不使用鼠标的情况下在任何地方创建多个光标。

最佳答案

一种可能的解决方案是使用书签(如果您还没有的话)。我不知道我脑海中的 Linux 键绑定(bind),但您可以添加书签,然后全选。要查看您平台的绑定(bind),请转至 Goto -> Bookmarks ,它们应该由命令列出。您还可以查看默认的键绑定(bind)文件。

第二种解决方案是使用插件。我前一阵子写了以下内容。不能说它是否/如何运作,因为我不记得了。对它的快速测试让我相信它可以正常工作。

import sublime
import sublime_plugin


class MultiCursorCommand(sublime_plugin.TextCommand):
    def run(self, edit, action="add"):
        self.key = "multi_cursor"
        cursors = self.view.sel()
        saved_cursors = self.view.get_regions(self.key)
        if action == "add":
            self.view.add_regions(self.key, list(cursors) + saved_cursors, "keyword", "", sublime.DRAW_EMPTY)
        elif action == "show":
            cursors.add_all(saved_cursors)
            self.view.add_regions(self.key, [])
        elif action == "show_begin":
            saved_cursors += list(cursors)
            cursors.clear()
            cursors.add_all([c.begin() for c in saved_cursors])
            self.view.add_regions(self.key, [])
        elif action == "show_end":
            saved_cursors += list(cursors)
            cursors.clear()
            cursors.add_all([c.end() for c in saved_cursors])
            self.view.add_regions(self.key, [])
        elif action == "show_visible":
            pass
        elif action == "clear":
            self.view.add_regions(self.key, [])
        elif action == "remove":
            for cursor in cursors:
                if cursor in saved_cursors:
                    saved_cursors.remove(cursor)
            self.view.add_regions(self.key, saved_cursors, "keyword", "", sublime.DRAW_EMPTY)


class RemoveCursorCommand(sublime_plugin.TextCommand):
    def is_enabled(self):
        return len(self.view.sel()) > 1

    def run(self, edit, forward=True):
        self.view.sel().subtract(self.view.sel()[0 if forward else -1])

键绑定(bind)看起来像
{ "keys": ["alt+a"], "command": "multi_cursor", "args": {"action": "add"} },
{ "keys": ["alt+s"], "command": "multi_cursor", "args": {"action": "show"} }

人们可能已经编写了一些插件,它们在包控制上做同样的事情,我只是不知道它们。

关于sublimetext3 - 崇高文本多光标快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25827388/

相关文章:

sublimetext - Sublime Text 3 - 如何使侧边栏变黑?

sublimetext3 - "view.window().run_command"和 "view.run_command"之间的区别

android - 创建快捷方式 : how can I work with a drawable as Icon?

windows - 检查 Inno Setup 中是否存在指向特定目标的快捷方式

bash - 程序化的 ngrok 隧道 URL

python - 如何在 macOS 上的 Sublime Text 3 上运行 Python3?

javascript - Sublime Text 3 中的 JS 语法修正

sublimetext3 - 如何在Sublime Text 3中配置5个按钮鼠标

windows - izpack:在 Windows 上创建快捷方式

javascript if - else 快捷方式不起作用?