【问题标题】:Make Sublime Text bookmarks column-insensitive使 Sublime Text 书签列不敏感
【发布时间】:2019-06-15 08:56:54
【问题描述】:

如何将书签限制为每行一个,而不是由一行和一列定义?

你知道,就像其他所有文本编辑器一样。

【问题讨论】:

  • 你用的是哪个插件?
  • 无............

标签: sublimetext3


【解决方案1】:

为了在书签位置中获得更小的粒度,您需要将内部 toggle_bookmark 命令替换为始终强制书签位置作为光标所在行的开头而不是其确切位置的命令。

为简单起见,如下所示:

import sublime
import sublime_plugin


class ToggleBookmarkCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        view = self.view

        old = view.get_regions("bookmarks")
        new = [sublime.Region(view.line(sel.b).begin()) for sel in view.sel()]

        for sel in new:
            if sel not in old:
                old.append(sel)
            else:
                del old[old.index(sel)]

        view.add_regions("bookmarks", old, "bookmarks", "bookmark", sublime.PERSISTENT)

将其放置在您的 User 包中的插件中,将使用此版本替换内部的 toggle_bookmark 命令,这将执行适当的切换,但始终将书签位置限制在行首。

bookmarks 区域是用于处理书签的内部命令使用的区域,因此该命令将与任何其他处理本机书签的命令一起使用。这包括已经存在的用于在命令之间导航的命令以及由其他插件添加的用于扩展功能的命令,例如在当前光标位置和下一个书签之间进行选择(尽管在这种情况下,由于涉及定位)。

【讨论】:

  • 它工作正常,除了它没有覆盖默认的 toggle_bookmark 命令。所以我将命令重命名为toggle_bookmark2(ToggleBookmark2Command)并更改了键绑定。安装提示:插件文件应该有一个 .py 扩展名。谢谢
  • 如果文件被外部更改,那么书签位置会发生变化,不再位于行首。
猜你喜欢
  • 1970-01-01
  • 2016-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多