美文网首页SublimeSublime Text
02-多重选择和多行编辑

02-多重选择和多行编辑

作者: Floyda | 来源:发表于2015-03-26 00:29 被阅读162次

多重选择

快捷键

  • ⌘ + d
    选择下一个和当前选取单词一样的单词.
  • ⌘ + f3
    选择当前 view 所有和当前选取单词一样的单词.

何谓当前选取单词?

  • 光标停留在单词上面(选区为空)
  • 鼠标框选, 或者 shift + 方向键选择一片区域(选区不为空)

Ex:
hello world
Hello World
helloworld
HelloWorld

光标停在第一个 hello 上, ⌘ + d
选择整个 hello 单词, ⌘ + d
对比一下两者的区别.

分析

**
多重选择的本质: 就是把若干选区放进 region_list 的过程
**

假设有一个 region_list = [ ]
每个选区就是一个 Class sublime.Region 的实例.
如果当前选区为空, 则根据光标获得当前单词匹配选区, 否则第一个选区是默认匹配选区
通过选区内容的匹配, 得到下一个选区. 并加入 region_list

匹配规则和当前的搜索规则一样.

Ex:
⌘ + f, 弹出搜索框
试试切换 Aa " ", 再 ⌘ + d, 可以精确到长度, 大小写
.* 正则表达式在后面

多行编辑

在多重选择的基础上, 得到若干个选区的列表(region_list)
这个时候的操作和输入, 就是对 region_list 中每个元素的操作和输入替换.

扩展

书签(bookmark)

  • ⌘ + f2
    记录当前选区, 在书签的左上方, 记录一个圆点
  • f2
    跳转并重新获得记录的选区

一行有多个 bookmark 的时候, 行首有且只有一个圆点, 所以在单个 bookmark 反向选取的时候, 其实是取消了, 但是小圆点并没有消失.
可以将多行的选取记录为一个 bookmark, 比如一个 for 循环.

多行编辑时的复制和粘贴.

假设有2个 region_list.
在多重选择 region_list_A 的时候, 复制
在多重选择 region_list_B 的时候, 粘贴

如果两个 list 的长度一样的话, 则会在 region_list_B 的每个元素后面, 分别粘贴 region_list_A 对应位置的元素.
如果长度不等, 则在 region_list_B 每个元素后面粘贴整个 region_list_A.

正则表达式

通过正则表达式, 得到想要的多重选区.

⌘ + F, 弹出搜索框.
勾选.*, 输入正则表达式
点击右边的Find All, 得到匹配的所有文本.

-- Floyda --

相关文章

网友评论

    本文标题:02-多重选择和多行编辑

    本文链接:https://www.haomeiwen.com/subject/soogxttx.html