首页 > 解决方案 > 使 Sublime Text 书签列不敏感

问题描述

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

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

标签: sublimetext3

解决方案


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


推荐阅读