美文网首页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