用于跳转到随机字符的 Sublime Text 2 插件?

Sublime Text 2 plugin for jumping to a random char?

如何在 Sublime Text 2 中跳转到前面选项卡中的随机字符?是否有用于此目的的插件?

如果我在前面的选项卡中打开了如下所示的文本文件,并且光标位于第一行的开头,

► put returns between paragraphs

► for linebreak add 2 spaces at end

► _italic_ or **bold**

► indent code by 4 spaces

► backtick escapes `like _so_`

► quote by placing > at start of line

► to make links

<http://foo.com>
[foo](http://foo.com)
<a href="http://foo.com">foo</a>

► basic HTML also allowed

我想跳转到本文中真正随机的某个地方,比如“► 将 > 放在行首引用”行的第二个 "i"。

PackageControl 的一些搜索似乎没有找到任何看起来可以执行此操作的东西,但您可以使用一些简单的 Python 代码来实现自己的目标。

以下是一个示例插件(适用于 Sublime Text 2 和 3),它实现了执行此操作的命令。要使用它,select Tools > New Plugin...Tools > Developer > New Plugin...(取决于您使用的 Sublime Text 的版本)并用此处的代码替换默认插件,然后将其另存为 python 文件.

import sublime, sublime_plugin
import random

class JumpToRandomPositionCommand(sublime_plugin.TextCommand):
    """
    When invoked, randomly select a character in the current 
    file and jump the cursor to that position. Does nothing
    if the current file is empty or if the current view does
    not represent a file.
    """
    def run(self, edit):
        view = self.view

        if view.size() > 0 and view.settings().get("is_widget", False) == False:
            view.sel().clear()

            pos = random.randrange(0, view.size())
            view.sel().add(sublime.Region(pos, pos))

            view.show(pos)

这实现了一个名为 jump_to_random_position 的命令,它将随机 select 文件中的一个字符并将光标跳到该位置,确保新位置在屏幕上可见。

这将取消 select 任何可能被 select 编辑的内容,并将视图恢复为单一 selection 模式(如果不是)。它还注意在空文件上或当前视图是小部件时不执行任何操作(例如 Sublime 控制台中的文本条目)。

根据您需要多久执行一次这样的操作,您可以为命令创建一个键绑定:

{ 
    "keys": ["ctrl+alt+shift+r"], 
    "command": "jump_to_random_position"
}

或者您可以使用以下代码从 Sublime Text 控制台手动调用命令(要打开控制台,请从菜单中选择 View > Show Console 或按 Ctrl+` :

view.run_command("jump_to_random_position")