Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3477033
  • 博文数量: 1450
  • 博客积分: 11163
  • 博客等级: 上将
  • 技术积分: 11101
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-25 14:40
文章分类

全部博文(1450)

文章存档

2017年(5)

2014年(2)

2013年(3)

2012年(35)

2011年(39)

2010年(88)

2009年(395)

2008年(382)

2007年(241)

2006年(246)

2005年(14)

分类: 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=

阅读(502) | 评论(0) | 转发(0) |
0

上一篇:vi 在文档后插入列块

下一篇:vi 对齐文本

给主人留下些什么吧!~~