1. 启动vim:vim 文件名(如果是不存在的,则新建)
2. 打开文件:vim 文件名(文件必须存在)
3. vim的模式
- 正常模式(按Esc或Ctrl+[进入) 左下角显示文件名或为空
以vi打开一个文件就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用上下左右按键来移动光标,你可以使用删除字符或删除整行来处理文件内容,也可以使用复制、粘贴来处理你的文件数据。
- 插入模式(按i键进入) 左下角显示--INSERT—
在一般模式中可以进行删除、复制、粘贴等的操作,但是却无法编辑文件的内容,只有当到你按下【i, I, o, O, a, A, r, R】等任何一个字母之后才会进入编辑模式。这时候屏幕的左下方会出现【INSERT或 REPLACE】的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下【Esc】即可退出编辑模式。
- 可视模式(不知道如何进入) 左下角显示--VISUAL—
- 命令行控制界面(shift+:)
输入【 : / ? 】三个中的任何一个,就可以将光标移动到最底下那一行。在这个模式中,可以提供查找、读取、存盘、替换字符、离开vi、显示行号等的动作则是在此模式中完成的!
4. 插入命令
i 在当前位置生前插入
I 在当前行首插入
a 在当前位置后插入
A 在当前行尾插入
o 在当前行之后插入一行
O 在当前行之前插入一行
【r, R】 进入取代模式:
r 只会取代光标所在的那一个字符一次
R 会一直取代光标所在的文字,直到按下 ESC 为止;
5. 移动命令
h 左移一个字符
l 右移一个字符,这个命令很少用,一般用w代替。
k 上移一个字符
j 下移一个字符
w 光标跳到下个字的开头
e 光标跳到下个字的字尾
H 光标移动到这个屏幕的最上方那一行的第一个字符
M 光标移动到这个屏幕的中间那一行的第一个字符
L 光标移动到这个屏幕的最下方那一行的第一个字符
G 移动到这个文件的最后一行
nG 移动到这个文件的第n行(可配合:set nu)
gg 移动到这个文件的第一行,相当于1G
End 移动到这一行的最后面字符处:$,我测试好像不行
Home 移动到这一行的最前面字符处:0数字,但不能用数字小键盘上的数字
Ctrl + e 向下滚动一行
Ctrl + y 向上滚动一行
Ctrl + d 向下滚动半屏
Ctrl + u 向上滚动半屏
Ctrl + f 向下滚动一屏
Ctrl + b 向上滚动一屏
n<space> 光标向右移动n个字符
n<Enter> 光标向下移动n行
6. 撤销和重做
u 撤销(Undo)
U 撤销对整行的操作
trl + r 重做(Redo),即撤销的撤销。
7. 删除命令
x 删除当前字符
X 删除当前字符的前一个字符。X=dh
nx 连续向后删除n个字符
3x 删除当前光标开始向后三个字符
D 删除当前字符至行尾。D=d$
dl 删除当前字符, dl=x
dh 删除前一个字符
dd 删除当前行
dj 删除上一行
dk 删除下一行
d$ 删除光标所在处,到该行的最后一个字符
d0 删除光标所在处,到该行的最前一个字符
dG 删除光标所在到最后一行的所有数据
d1G 删除光标所在行到第一行的所有数据
d$ 删除当前字符之后的所有字符(本行)
ndd 删除光标所在的向下n行
10d 删除当前行开始的10行。
kdgg 删除当前行之前所有行(不包括当前行)
:1,$d 删除所有行
:1,10d 删除1-10行
:11,$d 删除11行及以后所有的行
J(shift + j) 删除两行之间的空行,实际上是合并两行。
jdG(jd shift + g) 删除当前行之后所有行(不包括当前行)
8. 复制和粘贴
p在当前光标后粘贴,如果之前使用了yy命令来复制一行,就在当前行的下一行粘贴。
p 将已复制的数据在光标下一行粘贴上
P 则为贴在光标的上一行
yy 复制当前行
y0 复制光标所在的那个字符到该行行首的所有数据
y$ 复制光标所在的那个字符到该行行尾的所有数据
yG 复制光标所在行到最后一行的所有数据
y1G 复制光标所在行到第一行的所有数据
nyy 拷贝当前后开始的n行,比如2yy拷贝当前行及其下一行。
u 恢复前一个操作
Ctrl+r 重做上一个操作
. 是重复前一个操作
shift+p 在当前行前粘贴
:1,10 co 20 将1-10行插入到第20行之后。
:1,$ co $ 将整个文件复制一份并添加到文件尾部。
正常模式下按v(逐字)或V(逐行)进入可视模式,然后用jklh命令移动即可选择某些行或字符,再按y即可复制d
dp 交换当前行和其下一行
xp 交换当前字符和其后一个字符
9. 剪切命令
正常模式下按v(逐字)或V(逐行)进入可视模式,然后用jklh命令移动即可选择某些行或字符,再按d即可剪切
ndd 剪切当前行之后的n行。利用p命令可以对剪切的内容进行粘贴
:1,10d 将1-10行剪切。利用p命令可将剪切后的内容进行粘贴。
:1, 10m 20 将第1-10行移动到第20行之后。
10. 高亮命令
shift+* 向下查找并高亮显示
shift+# 向上查找并高亮显示
g+d 高亮显示光标所属单词,
n 查找!
在vim编辑器中执行 :nohlsearch
永不出现,可以用 set nohlsearch
11. 退出命令
:w 保存编辑的内容
:w! 强制写入该文件,但跟你对该文件的权限有关
:q 离开vi
:q! 强制退出并忽略所有更改
:wq 保存后离开
:x 保存后离开
:e! 放弃所有修改,并打开原来文件。
ZZ 若文件没有更动,则不保存离开,若文件已经被更改过,则保存后离开
12. 命令行命令
:w filename 将编辑的数据保存成另一个文件(类似另存)
:r filename 在编辑的数据中,读入另一个文件的数据。即将【filename】 这个文件的内容加到光标所在行后面。
:n1,n2 w filename 将n1到n2的内容保存成filename这个文件。
:! command 暂时离开vi 到命令行模式下执行command的显示结果!
"""例如 【:! ls /home】即可在 vi 当中察看/home底下以ls输出的文件信息!"""
:set nu 显示行号
:set nonu 与 set nu 相反,为取消行