分类: LINUX
2008-06-16 11:35:53
设想你正在编辑一个含有四列的表格:nice table test 1 test 2 test 3
input A 0.534
input B 0.913
你需要在第三列输入数字。你可以先移动到第二行,键入 "A",键入一大堆空格然后输入
你要输入的文本。
对于这种类型的编辑操作有一个特殊的选项:set virtualedit=all
现在你可以把光标移动到没有任何文本的位置。这叫做 "虚拟空间"。通过这种方法,编
辑表格变得容易很多。
通过查找最后一列的标题来移动光标:/test 3
现在按下 "j",光标就到了你要输入对应 "input A" 的值的地方了。输入 "0.693",结
果是:nice table test 1 test 2 test 3
input A 0.534 0.693
input B 0.913
Vim 已经自动为你填充了新文本前面的间隙。现在,要到此列的下一个域,键入 "Bj"。
"B" 用来反向移动到空白间隔的单词的开始处。然后,用 "j" 移动到可以输入下一域的
地方。
备注
:
你可以把光标移动到窗口的任何地方,也可以超出行尾。但是,Vim 在你未在该
位置插入字符之前并不会插入空格。
拷 贝 一 列
你想增加一列,它是第三列的一个拷贝,并且想放在 "test 1" 列的前面。做以下七步:
1. 移动光标到这一列的左上角,例如用 "/test 3"。
2. 按CTRL-V
来开启可视列块模式。
3. 用 "2j" 使光标向下移动两行。你现在进入了 "虚拟空间": "input B" 行中对应对
应列 "test 3" 的地方。
4. 把光标向右移动来选择整列,外加那些你想要的列之间的空格。用 "9l" 就行。
5. 用 "y" 来拷贝矩形选择区的内容。
6. 把光标移动到我们需要插入新列的地方 "test 1"。
7. 按下 "P"。
结果应该是:nice table test 3 test 1 test 2 test 3
input A 0.693 0.534 0.693
input B 0.913
需要注意
的是整个 "test 1" 列被向右移动了,同时也包括 "test 3" 列中没有文本的
行。
要返回到光标的非虚拟移动模式,用::set virtualedit=