一、关于vi
vi是最强大的文本编辑器,没有之一。
尽管vi已经是古董级的软件,但还是有无数新人迎着困难去学习使用,可见其经典与受欢迎的程度。
无论是小说中还是电视剧,真正强大的武器都不容易驾驭,需要付出一些努力才能收获到更加强大的力量,对于vi这种上古神器来说更是如此。
由于它全程使用键盘操作,很多首次接触 vi的人会觉得不习惯而中途放弃。然而,坚持下来的朋友就会渐渐地发现这种键盘操作的设计绝妙,经典之所以能成为经典,必然有它的道理,不用解释太多。
观察一个程序员对vi的熟练程度,可以判断它的技术水平,如果他对vi不熟悉,就肯定不是Linux平台下的程序员,说vi不好用的人也肯定不熟悉vi和Linux,没有例外。
二、创建/打开文件
vi 文件名
打开一个文件,如果文件不存在,就创建它。
示例:
1 | vi book.c |
三、vi的三种模式
vi 有三种模式:
- 命令行模式
- 插入模式
- 替换模式
在命令行模式下,任何键盘输入都是命令,在插入模式和替换模式下,键盘输入的才是字符。
插入模式和替换模式也合称为编辑模式。
四、vi的常用命令
Esc
:从编辑模式切换到命令行模式。
i
:在光标所在位置前面开始插入。
a
: 在光标所在的位置后面开始插入。
o
:在光标所在位置行的下面插入空白行。
O
:在光标所在位置行的上面插入空白行。
I
:在光标所在位置行的行首开始插入。
A
:在光标所在位置行的行末开始插入。
k
:类似方向键上。
j
:类似方向键下。
h
:类似方向键左。
l
:类是方向键右。
Ctrl+u
:向上翻半页。
Ctrl+d
:向下翻页。
Ctrl+g
:显示光标所在位置的行号和文件的总行数。
nG
:光标跳到文件的第n行行首。
G
光标跳到文件最后一行。
:5回车
光标跳到第5行。
:n回车
光标跳到第n行。
0
:光标跳到当前行的行首。
$
:光标跳到当前行的行尾。
w
:光标跳到下个单词的开头。
b
:光标跳到上个单词的开头。
e
:光标跳到本单词的尾部。
x
:每按一次,删除光标所在位置的一个字符。
nx
:如”3x”表示删除光标所在位置开始的3个字符。
dw
:删除光标所在位置到本单词结尾的字符。
D
:删除本行光标所在位置后面全部的内容。
dd
:删除光标所在位置的一行。
ndd
:如”3dd”表示删除光标所在位置开始的3行。
yy
:将光标所在位置的一行复制到缓冲区。
nyy
:将光标所在位置的n行复制到缓冲区。
p
:将缓冲区里的内容粘贴到光标所在位置。
r
:替换光标所在位置的一个字符 replace。
R
:从光标所在位置开始替换,直到按下”Esc”。
cw
:从光标所在位置开始替换单词,直到按下”Esc”。
u
:撤销命令,可多次撤销。
J
:把当前行的下一行接到当前行的尾部。
/abcd
:在当前打开的文件中查找“abcd”文本内容。
n
:查找下一个。
N
:查找上一下。
.
:重复执行上一次执行的vi命令。
~
:对光标当前所在的位置的字符进行大小写转换。
列操作
Ctrl+V
:光标上或下 大写的I 输入内容 Esc
:w回车
:存盘。
:w!回车
:强制存盘。
:wq回车
:存盘退出。
:x回车
:存盘退出。
:q回车
:不存盘退出。
:q!回车
:不存盘强制退出。
:g/aaaaaaaaa/s//bbbbbb/g回车
:把文件中全部的aaaaaaaaa替换成bbbbbb。
Ctl+insert
:复制鼠标选中的文本,相当于Ctl+c。
Shift+insert
:输出鼠标选中的文本,相当于Ctl+v。
以上两个命令在windows和UNIX中是通用的。