ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

EasyMotion

tednaleid ALL

Sublime Text 2插件,允许您快速跳转到当前视图可见区域内的任何字符。

详细信息

  • 2015.07.10.00.44.08
    2014.04.26.18.30.48
  • github.com
  • github.com
  • 9年前
  • 1小时前
  • 12年前

安装次数

  • 总计 26K
  • Win 13K
  • Mac 8K
  • Linux 5K
8月6日 8月5日 8月4日 8月3日 8月2日 8月1日 7月31日 7月30日 7月29日 7月28日 7月27日 7月26日 7月25日 7月24日 7月23日 7月22日 7月21日 7月20日 7月19日 7月18日 7月17日 7月16日 7月15日 7月14日 7月13日 7月12日 7月11日 7月10日 7月9日 7月8日 7月7日 7月6日 7月5日 7月4日 7月3日 7月2日 7月1日 6月30日 6月29日 6月28日 6月27日 6月26日 6月25日 6月24日 6月23日 6月22日
Windows 0 0 2 1 3 0 0 0 0 0 0 0 0 1 0 2 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1
Mac 2 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 2 0 0 0 0 0 0 0 0 0 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 0 0 0 0 0 0 0 0

说明文件

源代码
raw.​githubusercontent.​com

Sublime EasyMotion

EasyMotion是一个Sublime Text 2插件,允许您将光标移动到当前视图的任何字符。

其设计灵感主要来自Vim的EasyMotionEmacs的AceJump插件。

按下EasyMotion快捷键(默认cmd-;/ctrl-;)后,再按您想跳转到的字符。EasyMotion会将当前视图中所有可见的该字符实例替换为a-zA-Z0-9中的一个。按下您所需的键,您的光标将直接跳转到该位置。

在此处我按下cmd-;,然后按f。EasyMotion用a-f高亮显示6个可见的“f”字符。然后我按d键跳转到“function”的开始。

Animated Gif

安装

通过PackageControl安装

如果您已安装PackageControl插件,则可以使用它来安装EasyMotion。

只需按cmd-shift-p(win/Linux上的ctrl-shift-p)呼出命令面板,然后输入install,从下拉菜单中选择Package Control: Install Package

然后输入EasyMotion,从下拉菜单中选择EasyMotion插件。按下enter键即可安装。

手动安装

手动安装应该很简单,只需将此git仓库克隆到Sublime Text的Packages目录。在OSX上

cd ~/Library/Application\ Support/Sublime\ Text\ 2/Packages
git clone git://github.com/tednaleid/sublime-EasyMotion.git EasyMotion

(在packages下的目录名必须为EasyMotion,而不是sublime-EasyMotion,以便某些首选项被选中)

如果您想尝试下一个版本的插件,可以将分支切换到开发分支

cd EasyMotion
git checkout development

此分支将包含标记为已解决的问题的功能,但尚未合并到master

Sublime Text 3 的实验性支持

此功能不受支持,也没有计划在未来添加更多支持。对于 ST3,我建议查看AceJump 插件

st3 分支上提供了对 Sublime Text 3 的实验性支持,需要手动安装并使用 st3 分支。

cd ~/Library/Application\ Support/Sublime\ Text\ 3/Packages
git clone git://github.com/tednaleid/sublime-EasyMotion.git EasyMotion
cd EasyMotion
git checkout st3

用法

跳转到任何可见字符

cmd-;   <character>   // OSX
ctrl-;  <character>   // Linux/Windows

它会将那个字符的所有实例标记为 a-zA-Z0-9 中的唯一值,输入你想要的标记,然后会跳转到那里。

示例

光标在文件末尾,我们想在第 3 行的 realpart 变量的开头位置跳转

EasyMotion Begin

而不用按两次上箭头并滚动到 r(或者拿鼠标),可以按 cmd-; 后跟 r。这会将你的文件转换成这样(注意,每个 r 实例都被转换为了 a-zA-Z0-9 中的一个)

EasyMotion Middle

e 然后,光标会跳到那里

EasyMotion Middle

如果你的目标字符在可见区域内出现超过 62 次,它将分批次装饰。

所以如果我们用 cmd-;+l 搜索这个字 l

Many Matches Start

前 62 个目标将看起来像这样

Many Matches First

只需按 enter 就会高亮显示下一组匹配项。

Many Matches Second

继续按 enter,它会继续以每批 62 个的方式在这些匹配组中循环。你也可以按 shift-enter 来向后循环目标组。按 spacebarctrl-cescape 也可以退出(但不知何故,目前有一个 bug,需要重复按这些键两次才能退出)。

选择光标和任何可见字符之间的所有文本

cmd-shift-;  <character>  // OSX
ctrl-shift-; <character>  // Linux/Windows

它会将那个字符的所有实例标记为 a-zA-Z0-9 中的唯一值,输入它并将选择从你当前光标位置到所选择的跳转目标之间的所有文本。

示例

所以在上面的情况下,如果我们按 cmd-shift-; 后跟 r 并选择在第 3 行的 imagpart 变量的开头发生的 e 目标,我们就会得到这样

EasyMotion Select

用户可修改的首选项

重映射 Sublime EasyMotion 键盘快捷键

您可以通过将覆盖值输入到“User - KeyBindings”(在 OSX 的“Sublime Text 2 -> Preferences -> Package Settings -> Easy Motion”)中,来将键盘重映射为非默认值,只需确保准确复制现有的键盘绑定,并且只更改 keys 段落的第一个项目,否则它将无法工作。因此,如果您想要跳转命令为 ctrl-,,则使用以下内容

[
    { 
        "keys": ["ctrl+,", "<character>"], 
        "command": "easy_motion",
        "args": {"select_text": false} 
    },
    { 
        "keys": ["ctrl+shift+,", "<character>"], 
        "command": "easy_motion",
        "args": {"select_text": true} 
    }
]

覆盖用于跳转的占位符字符

将它添加到您的“User Settings”文件中(在 OSX 的“Sublime Text 2 -> Preferences -> Package Settings -> Easy Motion -> Settings - User”中查找)并更改字符串,包含您希望使用的任何字符

// define the characters that we can jump to, in the order that they'll appear, they should be unique
"placeholder_chars" : "abcdefghijklmnopqrstuvwxyz01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"

示例:仅使用 QWERTY 主键盘替换

"placeholder_chars" : "jkl;asdfHGJKL:ASDFHG"

覆盖跳转目标的高亮颜色

如果用于跳转目标的高亮颜色在您的颜色方案中不够醒目,可以通过更改此“User Setting”来覆盖它

// defines syntax highlighting scope that will be used to highlight matched jump targets
// other examples include: keyword, string, number
"jump_target_scope" : "entity.name.class"

版本

  • 0.8 - 发布于 2013 年 2 月 3 日 - 更新了首选项的位置为 EasyMotion 特定文件并包含插件特定首选项文件。您需要将这些首选项迁移到该文件中,以便它们生效。
  • 0.9 - 发布于 2013 年 2 月 14 日 - 移除了对输入面板的需求并实现了 easy_motion_mode 来接受按键,还允许 shift-enter 向后循环
  • 1.0 - 发布于 2014 年 2 月 1 日 - 当处于插入模式(不是 vim 命令模式)时,将光标放在所选字母的右侧,而不是左侧