使Sublime Text书签对列不敏感

时间:2019-06-15 08:56:54

标签: sublimetext3

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

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

1 个答案:

答案 0 :(得分:1)

为了使书签位置的粒度更小,您需要用一个内部toggle_bookmark替换命令,该命令始终强制将书签位置变为光标所在行的开头,而不是其确切位置。 / p>

为简单起见,它类似于以下内容:

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