在学《鸟哥的Linux私房菜》,看到VIM,其中的块选择感觉非常有意思

刚刚我们提到的简单的 vi 操作过程中,几乎提到的都是以行为单位的操作。那么如果我想要搞定的是一个区块范围呢? 举例来说,像底下这种格式的文档

wKioL1Yd_xjB4CaVAAGG5hsGrlU417.jpg

假设我想要将 host1, host2... 等等复制起来, 并且加到每一行的后面,亦即每一行的结果要是

wKiom1Yd_8Dhcj8EAAAnew8ufk0752.jpg

这样的情况时, 在word或者EditPlus等传统的视窗型编辑器似乎不容易达到这个需求,

但是 vim 是办的到的喔!那就使用区块选择 (Visual Block) 吧!

来实际进行我们需要的动作吧!就是将 host 再加到每一行的最后面,你可以这样做:

  1. 使用 vim hosts 来开启该档案

  2. 将游标移动到第一行的 host 那个 h 上头,然后按下 [ctrl]-v ,左下角出现区块示意字样:

    wKiom1YeAEfhrHNVAAFItOLdyJc699.jpg


  3. 将游标移动到最底部,此时游标移动过的区域会反白!如下图所示:

    wKioL1YeAV2SvTJLAAGtY0mAIXA716.jpg

  4. 最后,将游标移动到第一行的最右边,并且再用编辑模式向右按两个空白键

    wKiom1YeAT6yTfG_AAGEoaSsSAc308.jpg

  5. 回到一般模式后, 再按下‘ p ’后,如下图所示:
    wKioL1YeAiHS8YCrAAHLbB2aKaM459.jpg


透过上述的功能,就可以复制一个区块,并且是贴在某个‘区块的范围’内,而不是以行为单位来处理整份文件喔! 至少在进行排列整齐的文字档案中复制/删除区块时,会是一个非常棒的功能!

感谢鸟哥的介绍哦