刚刚我们提到的简单的 vi 操作过程中,几乎提到的都是以行为单位的操作。那么如果我想要搞定的是一个区块范围呢? 举例来说,像底下这种格式的档案:
192.168.1.1 host1.class.net 192.168.1.2 host2.class.net 192.168.1.3 host3.class.net 192.168.1.4 host4.class.net.....中间省略...... |
这个档案我将他放置到 http://cn.linux.vbird.org/linux_basic/0310vi/hosts ,你可以自行下载来看一看这个档案啊!现在我们来玩一玩这个档案吧!假设我想要将 host1, host2... 等等复制起来, 并且加到每一行的后面,亦即每一行的结果要是『 192.168.1.2 host2.class.net host2 』这样的情况时, 在传统或现代的窗口型编辑器似乎不容易达到这个需求,但是咱们的 vim 是办的到的喔!那就使用区块选择 (Visual Block) 吧!当我们按下 v 或者 V 或者 [Ctrl] v 时, 这个时候光标移动过的地方就会开始反白,这三个按键的意义分别是:
区块选择的按键意义 | |
v | 字符选择,会将光标经过的地方反白选择! |
V | 行选择,会将光标经过的行反白选择! |
[Ctrl] v | 区块选择,可以用长方形的方式选择资料 |
y | 将反白的地方复制起来 |
d | 将反白的地方删除掉 |
来实际进行我们需要的动作吧!就是将 host 再加到每一行的最后面,你可以这样做:
使用 vim hosts 来开启该档案,记得该档案请由上述的连结下载先!
将光标移动到第一行的 host 那个 h 上头,然后按下 [ctrl]-v ,左下角出现区块示意字样:
将光标移动到最底部,此时光标移动过的区域会反白!如下图所示:
图 1、进入区块功能的示意图
图 2、区块选择的结果示意图图 3、将区块的资料贴上后的结果
此时你可以按下『 y 』来进行复制,当你按下 y 之后,反白的区块就会消失不见啰!
最后,将光标移动到第一行的最右边,并且再用编辑模式向右按两个空格键,回到一般模式后, 再按下『 p 』后,你会发现很有趣!如下图所示:
透过上述的功能,你可以复制一个区块,并且是贴在某个『区块的范围』内,而不是以行为单位来处理你的整份文件喔! 鸟哥个人是觉得这玩意儿非常的有帮助啦!至少在进行排列整齐的文本文件中复制/删除区块时,会是一个非常棒的功能!
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved