Sublime Text 快捷键演示(动画)

Sublime MultiEditUtils
Build Status
Build Status

A Sublime Text 2/3 Plugin which enhances editing of multiple selections. In case you aren't familar with Sublime's awesome multiple selection features, visit this page.

Features

Extend the current selection with the last selection

Sometimes Sublime's standard features for creating multiple selections won't cut it. MultiEditUtils allows to select the desired parts individually and merge the selections with the add_last_selection command (default keybinding is ctrl/cmd+alt+u).

Split the selection

Sublime has a default command to split selections into lines, but sometimes you want to define your own splitting character(s). MultiEditUtils' split_selection command (default keybinding is ctrl/cmd+alt+,) will ask you for a separator and split the selection using your input. An empty separator will split the selection into its characters.

Preserve case while editing selection contents

When multi-selecting all occurences of an identifier it is cumbersome to change it to another one if the case differs (camelCase, PascalCase, UPPER CASE and even cases with separators like snake_case, dash-case, dot.case etc.). The "Preserve case" feature facilitates this. Just invoke "Preserve case" via the command palette (or define an own keybinding) and type in the new identifier.

Normalize and toggle region ends

When creating selections in Sublime, it can occur that the end of the selection comes before the beginning. This happens when you make the selection "backwards". To resolve this, you can normalize the regions with MultiEditUtils' normalize_region_ends command (default keybinding is ctrl/cmd+alt+n). When executing this command a second time, all regions will be reversed.

This feature can also be very handy when you want to toggle the selection end of a single region.

Jump to last region

When exiting multi selection mode, Sublime will set the cursor to the first region of your previous selection. This can be annoying if the regions were scattered throughout the current buffer and you want to continue your work at the last region. To avoid this, just execute MultiEditUtils' jump_to_last_region command (default keybinding is shift+esc) and the cursor will jump to the last region.

Cycle through the regions

In case you want to double check your current selections, MultiEditUtils' cycle_through_regions command (default keybinding is ctrl/cmd+alt+c) will let you cycle through the active regions. This can come handy if the regions don't fit on one screen and you want to avoid scrolling through the whole file.

Strip selection

Sometimes selections contain surrounding whitespace which can get in the way of your editing. The strip_selection command strips the regions so that this whitespace gets removed. The default keybinding is ctrl/cmd+alt+s.

Remove empty regions

When splitting your selection or performing other actions on your selection, it can happen that some regions are empty while others are not. Often only the non-empty regions are of interest. The remove_empty_regions commands will take care of this and remove all empty regions from your current selection. The default keybinding is ctrl/cmd+alt+r.

Quick Find All for multiple selections

Similar to the built-in "Quick Find All" functionality, MultiEditUtils provides a functionality which selects all occurrences of all active selections. The default keybinding of the multi_find_all command is ctrl+alt+f (on Mac it's cmd+alt+j).

Use selections as fields

Converts the selections to fields similar to the fields used in snippets. When the selection_fields command is executed, all current selections are saved as fields, which can be activated one by one. The first field is activated automatically. You can jump to the next field with tab (or the default keybinding) and to the previous field with shift+tab. If you jump behind the last field or press escape all fields will be converted to proper selections again. If you press shift+escape all fields will be removed and the current selection remains unchanged.

demo_selection_fields
demo_selection_fields

You can bind this command to a keybinding by adding the following to your keymap (Change the key to the keybinding you prefer):

{ "keys": ["alt+d"], "command": "selection_fields" },

Although using one keybinding with the default options should be sufficient for most cases, additional modes and arguments are possible. Feel free to ignore or use them as you wish.

Arguments:

  • mode ("smart") is the executing mode, which defines the executed action. Possible modes are:
    • "push" to push the current selection as fields. This will overwrite already pushed fields.
    • "pop" to pop the pushed fields as selections
    • "remove" to remove the pushed fields without adding them to the selection. This has the same behavior as pop if only_other is true.
    • "add" to add the current selection to the pushed fields
    • "subtract" to subtract the current selection from the pushed fields
    • "smart" to try to detect whether to push, pop or jump to the next field
    • "toggle" to pop if fields are pushed, else push the selections as fields.
    • "cycle" to push or go next. This will cycle, i.e. go to the first if the last field is reached, never pops
  • jump_forward (true) can be true to jump forward and false to jump backward
  • only_other (false) ignores the current selection for pop and go next actions.

Suggestion for more keybindings based on the arguments:

// default use of selection_fields
{ "keys": ["alt+d"], "command": "selection_fields" },
// add the current selections as a fields
{ "keys": ["alt+a"], "command": "selection_fields", "args": {"mode": "add"} },
// jump and remove current selection in selection_fields
{ "keys": ["ctrl+alt+d"], "command": "selection_fields",
  "args": {"mode": "smart", "only_other": true} },
// cancel selection_fields and remove current selection
{ "keys": ["ctrl+alt+shift+d"], "command": "selection_fields",
  "args": {"mode": "toggle", "only_other": true} },

Installation

Either use Package Control and search for MultiEditUtils or clone this repository into Sublime Text "Packages" directory.

License

MIT © Philipp Otto

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容