Friday, June 01, 2007

VI: 一旦拥有,别无所求

"To me, vi is Zen.
To use vi is to practice zen.
Every command is a koan.
Profound to the user,
unintelligible to the uninitiated.
You discover truth every time you use it."
--reddy@lion.austin.com

"对我来说,vi就是禅。
用vi就是坐禅。
每一个命令就是一个心印
对皈依者意义深远
对不了解者不可捉摸
每一次使用都会有新的发现"

VI是所有*NIX类系统都内置的一个命令行文本编辑软件,功能强大,命令繁多。初学时很难上手,但是一旦你熟悉之后,相信你不会再想使用其他的编辑软件。

本篇假定你已经熟悉VI的一些基本命令,如:
vi httpd.conf #打开一个名为httpd.conf的文档,如果不存在,将在当前目录下创建此文档;
输入“:wq”:存盘推出命令。
输入“:q!”:不存盘,强制推出
ESC:在命令模式与输入模式之间切换
i,I或者o等:插入文本命令........

VI之一:光标移动篇

这里我们先学习一下如何在一篇打开的文档中进行光标移动。

1. 方向键h,j,k,l.
h: 将光标向移动一个字符
j: 将光标向移动一个字符
k: 将光标向移动一个字符
l: 将光标向移动一个字符

这四个键相当于方向键,另设它们的好处是:你的手指不必离开正常的输入位置

2. 按字符移动的命令
fx: 移动光标至当前行下一个x字符处;使用;来重复上一次的f移动
tx: 同fx,但是移动光标至x字符前,而不是x字符上
Fx:通fx,但反方向移动

w:前移光标至下一个单词第一字符
W:前移光标至下一个长单词第一字符
e: 前移光标至下一个单词最后字符
E: 前移光标至下一个长单词最后字符
b: 前一单词第一字符
B: 前一长单词第一字符
(vi 按空格或标点符号分隔单词,按空格或新行来分隔长单词)

(: 到句首
): 到句尾

0: 到行首
^: 到行首第一字符
$: 到行尾

{: 到段首
}: 到段尾

*: 读取光标当前所在位置的字符,并将向前移动至下一个同样的字符
#: 和*功能相同,但反方向移动光标

Ctrl+F: 向前滚屏
Ctrl+B: 向后滚屏
H,M,L: 移动光标至屏幕的顶端,中间,底端

G: 移动光标至文档最后一行
numG: 移动光标至第num行

/text: 从光标处开始,向前搜索"text"字串
?text: 同上,但搜索方向相反

同时也发现一个图片vi教程,讲的也很清晰:www.litrin.org/UserFiles/Image/vi_png.jpg

No comments: