【问题标题】:How to select to the next bookmark in sublime text 3如何在 sublime text 3 中选择下一个书签
【发布时间】:2014-08-14 12:39:04
【问题描述】:

有没有办法在 SublimeText3 中选择当前光标位置和下一个/上一个书签之间的文本?

shift 键的组合不起作用:shiftF2 转到上一个书签(即 shift + F2 = "转到下一个书签")。选择“下一个书签”菜单项时按住 shift 也不起作用。

【问题讨论】:

    标签: sublimetext sublimetext3


    【解决方案1】:

    为此,您可能需要一个插件。我刚刚制作了这个简单的插件,它根据 forward 参数的值从当前光标位置选择下一个/上一个书签。

    这是插件:

    import sublime, sublime_plugin
    
    class SelectToBookmarkCommand(sublime_plugin.TextCommand):
        def run(self, edit, **args):
            """Get initial position"""
            initialPoint = self.view.sel()[0].begin()
    
            """Clear selected things (if any)"""
            self.view.sel().clear()
    
            """Move to next bookmark or previous bookmark"""
            forward = args.get('forward','true')
            if forward is True:
                self.view.run_command("next_bookmark")
            else:
                self.view.run_command("prev_bookmark")
    
    
            """Get current position (position of the bookmark)"""
            finalPoint = self.view.sel()[0].begin()
    
            """Clear selected things (if any)"""
            self.view.sel().clear()
    
            """Region to select"""
            regionToSelect = sublime.Region(initialPoint, finalPoint)
    
            """Add the region to the selection"""
            self.view.sel().add(regionToSelect)
    

    使用 Tools > New Plugin 并使用提供的插件。将其保存为 SelectToBookmark.py 。 最后,使用如下方式将 keyBindings 添加到您的用户文件中:

    {
        "keys": ["ctrl+alt+e"],
        "command": "select_to_bookmark",
        "args": {"forward": true}
    }
    

    使用另一个 keyBinding 并将 forward 参数设置为 false 从当前位置选择到上一个书签。

    编辑:正如用户 @MattDMo 评论的那样: "确保将 .py 文件保存在 Packages/User - 您可以通过选择 Preferences -> Browse Packages...菜单选项”

    【讨论】:

    • 只是一个注释 - 确保将 .py 文件保存在 Packages/User - 您可以通过选择 在系统上找到该目录(如果它没有自动出现) Preferences -> Browse Packages... 菜单选项。
    • 工作愉快!谢谢!在 OS-X 10.8.5 中,Preferences -> Browse Packages... 打开一个查找器窗口,其中选择了 Packages 文件夹。您可以在 finder 中 command-C,然后粘贴到 sublime 文本的“另存为”对话框中以进入 packages 文件夹(然后选择 User 将其保存在那里)。我使用“ctrl+alt+f2”和“ctrl+alt+shift+f2”键绑定与其他书签键绑定类似。
    • 我很高兴它有效。谢谢@MattDMo,我已经用该信息更新了答案。
    • 如果这个脚本也能支持SublimeBookmark包就好了。
    【解决方案2】:

    类似于@sergioFC 的回答。此版本用于SublimeBookmark 包。

    import sublime, sublime_plugin
    
    class SelectToBookmarkCommand(sublime_plugin.TextCommand):
        def run(self, edit, **args):
            """Get initial position"""
            initialPoint = self.view.sel()[0].begin()
    
            """Clear selected things (if any)"""
            self.view.sel().clear()
    
            """Move to next bookmark or previous bookmark"""
            forward = args.get('forward','true')
            if forward is True:
                self.view.window().run_command("sublime_bookmark",{ "type" : "goto_previous" })
            else:
                self.view.window().run_command("sublime_bookmark",{ "type" : "goto_next" })
    
    
            """Get current position (position of the bookmark)"""
            finalPoint = self.view.sel()[0].begin()
    
            """Clear selected things (if any)"""
            self.view.sel().clear()
    
            """Region to select"""
            regionToSelect = sublime.Region(initialPoint, finalPoint)
    
            """Add the region to the selection"""
            self.view.sel().add(regionToSelect)
    

    【讨论】:

      猜你喜欢
      • 2014-12-06
      • 2016-01-05
      • 2016-03-27
      • 1970-01-01
      • 1970-01-01
      • 2013-06-23
      • 2015-01-14
      • 1970-01-01
      • 2020-03-12
      相关资源
      最近更新 更多