1. 光标的移动
在一行内移动
h 向左移动一个字符
l 向右移动一个字符
0 移动到行尾
$ 移动到行首
在word间移动
w 下个小写词汇(组合)
W 下个大写词汇(组合)
b 上一个小写词汇(组合)
B 上一个大写词汇(组合)
e 下一个小写词汇(组合)的尾部
E 下一个大写词汇(组合)的尾部
在一个屏幕内移动
k 光标移动到上一行
j 光标移动到下一行
H 光标移动到屏幕内首行首字符(空格除外)
M 光标移动到屏幕内中间行首字符(空格除外)
L 光标移动到屏幕内最后一行首字符(空格除外)
光标在屏幕间移动
<Ctrl -f> 光标移动到下一个屏幕
<Ctrl -b> 光标移动到上一个屏幕
2. 删除操作
x 删除光标后一个字符
X 删除光标前一个字符
dw 从光标处删除至词尾
d$ 从光标处删除至行尾
d0 从光标处删除至行首
dd 删除整行
:20,40d 从第20个字符删除至第40个字符
10dd(d10d) 删除光标以下10行(包含光标所在行),并置于buffer内
u 取消之间操作。
3. 插入操作
i 在光标前插入字符
I 在行首插入字符
a 在光标后插入字符
A 在行尾插入字符
o 在光标下面插入一行
O 在光标上方插入一行
4. 替换
r 单字符替换
:s 命令来替换字符串
:s/str1/str2/ 替换当前行第一个 str1为 str2
:s/str1/str2/g 替换当前行所有 str1为 str2
:n,$s/str1/str2/ 替换第 n 行开始到最后一行中每一行的第一个 str1为 str2
:n,$s/str1/str2/g 替换第 n 行开始到最后一行中每一行所有 str1为 str2
若 n 为 .,表示从当前行开始到最后一行
:%s/str1/str2/(等同于 :g/str1/s//str2/) 替换每一行的第一个 str1为 str2
:%s/str1/str2/g(等同于 :g/str1/s//str2/g) 替换每一行中所有 str1为 str2
可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符(可以使用其他任意的字符替换/的作用,此时/作为字符串的一部分)
:s#str1/#str2/# 替换当前行第一个 str1/ 为 str2/
5. 查找
输入 /,然后会发现在左下角会出现/,随后输入想要查找的词,按回车就可以以当前光标位置为起点向下查找。
输入?,然后输入查找的词,会以当前光标为起点向上查找
6. 剪切、复制、粘贴
dd 删除当前行,并将内容置于buffer内,此操作,相当于剪切
yy(nyy / yny,n为正整数) 为复制
p/P 粘贴(小写p表示在光标后粘贴,大写P表示在光标前粘贴)
7. vi 编辑文件与外部环境之间的切换操作
在vi 编辑文件时,
:! +command 来切换到外部环境,并执行command命令.如: :!ls
(责任编辑:IT):r + file_name 将file_name的内容读取到当前编辑的文件中. :sh + 一系列命令 |