vim基本上vi可以分为三种状态:
1.命令模式(command mode)
2.输入模式(Insert mode)
3.底行模式(last line mode)
<一>命令行模式(command mode)功能键
■进入输入模式的方式:
a 从光标所在位置后面开始新增资料,光标后的资料随新增资料向后移动。
A 从光标所在列最后面的地方开始新增资料。
i 从光标所在位置前面开始插入资料,光标后的资料随新增资料向后移动。
I 从光标所在列的第一个非空白字元前面开始插入资料。
o 在光标所在列下新增一列并进入输入模式。
O 在光标所在列上方新增一列并进入输入模式。
s 删除光标所在字元,并进入输入模式。
S 删除光标所在的列,并进入输入模式。
■退出输入模式
ESC键
■光标移动
vim可以直接用键盘上的光标来上下左右移动。但正规的vi是用小写英文字母h、j、k、l,分别控制光标左、下、上、右移一格。
ctrl + d 向下半页
ctrl + u 向上半页
Ctrl + f 向下一页
ctrl + b 向上一页
$ / END 移动到光标所在行的最后面
0 / HOME 移动到光标所在行的最前面
^ 移动到光标所在行的第一个字母的开头
b 移动到下个字的第一个字母
w 移动到上个字的第一个字母
e 移动到下个字的最后一个字母
H 移动光标到当前屏幕上面
M 移动光标到当前屏幕中间
L 移动光标到当前屏幕下面
#H 移动光标到当前屏幕的第#行
#L 移动光标到当前屏幕的倒数第#行
+ 移动光标到下一行的开始
- 移动光标到上一行的开始
■删除文字
x 删除光标所在位置的后面一个字符
X 删除光标所在位置的前面一个字符
dd 删除光标所在行
#x 例如:6x表示删除光标所在位置的后面6个字符。
#X 例如:9X表示删除光标所在位置的前面9个字符。
#dd 从光标所在行开始删除#行
s 删除光标所在字元,并进入输入模式。
S 删除光标所在的列,并进入输入模式。
■复制
yw 将光标所在之处到字尾的字符复制到缓冲区中。
#yw 复制#个字到缓冲区
yy 复制光标所在行到缓冲区。
#yy 例如,6yy表示拷贝从光标所在的该行“往下数”6行文字。
p 将缓冲区内的字符贴到光标所在位置
注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
■替换
r 替换光标所在处的字符。
R 替换光标所到之处的字符,直到按下「ESC」键为止。
■撤销
u 如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复
U 撤销一行的操作
■跳至指定的行
gg 跳转到文件的开头
G 跳转到文件的结尾
#G 跳转到文件中指定的行的行首。例如:「15G」表示移动光标至文章的第15行行首。
H 移动光标到当前屏幕上面
M 移动光标到当前屏幕中间
L 移动光标到当前屏幕下面
#H 移动光标到当前屏幕的第#行
#L 移动光标到当前屏幕的倒数第#行
+ 移动光标到下一行的开始
- 移动光标到上一行的开始
ctrl + g 列出光标所在行的行号。
<二>底行模式(last line mode)功能键
■列出行号
:set nu 或 :set number 显示行号
:set nonu 或 :set nonumber 消除行号
:set ruler 设置vim在右下角显示光标的位置
:reg 查看剪切板中的内容
:pwd 获取当前工作目录
■跳到文件中的某一行
在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。
■查找字符
/string 向下查找字符串"string"
?string 向上查找字符串"string"
n 配合/string或?string使用,正方向重复
N 配合/string或?string使用,反方向重复
■退出vi及保存文件
:q 结束编辑(quit)
:q! 不想存档而要放弃编辑过的文件,强制离开
:w 存档(write),其后可加所要保存的文件
=================================================================
编辑指令:基本上可以说是由指令与范围所构成。例如 dw 是由删除指 令 d 与范围 w 所组成,代表删除一个字 d(elete) w(ord) 。
指令列表如下:
d 删除(delete)
y 复制(yank)
p 放置(put)
c 修改(change)
范围可以是下列几个:
e 光标所在位置到该字的最后一个字母
w 光标所在位置到下个字的第一个字母
b 光标所在位置到上个字的第一个字母
$ 光标所在位置到该列的最后一个字母
0 光标所在位置到该列的第一个字母
) 光标所在位置到下个句子的第一个字母
( 光标所在位置到该句子的第一个字母
} 光标所在位置到该段落的最后一个字母
{ 光标所在位置到该段落的第一个字母
1.命令模式(command mode)
2.输入模式(Insert mode)
3.底行模式(last line mode)
<一>命令行模式(command mode)功能键
■进入输入模式的方式:
a 从光标所在位置后面开始新增资料,光标后的资料随新增资料向后移动。
A 从光标所在列最后面的地方开始新增资料。
i 从光标所在位置前面开始插入资料,光标后的资料随新增资料向后移动。
I 从光标所在列的第一个非空白字元前面开始插入资料。
o 在光标所在列下新增一列并进入输入模式。
O 在光标所在列上方新增一列并进入输入模式。
s 删除光标所在字元,并进入输入模式。
S 删除光标所在的列,并进入输入模式。
■退出输入模式
ESC键
■光标移动
vim可以直接用键盘上的光标来上下左右移动。但正规的vi是用小写英文字母h、j、k、l,分别控制光标左、下、上、右移一格。
ctrl + d 向下半页
ctrl + u 向上半页
Ctrl + f 向下一页
ctrl + b 向上一页
$ / END 移动到光标所在行的最后面
0 / HOME 移动到光标所在行的最前面
^ 移动到光标所在行的第一个字母的开头
b 移动到下个字的第一个字母
w 移动到上个字的第一个字母
e 移动到下个字的最后一个字母
H 移动光标到当前屏幕上面
M 移动光标到当前屏幕中间
L 移动光标到当前屏幕下面
#H 移动光标到当前屏幕的第#行
#L 移动光标到当前屏幕的倒数第#行
+ 移动光标到下一行的开始
- 移动光标到上一行的开始
■删除文字
x 删除光标所在位置的后面一个字符
X 删除光标所在位置的前面一个字符
dd 删除光标所在行
#x 例如:6x表示删除光标所在位置的后面6个字符。
#X 例如:9X表示删除光标所在位置的前面9个字符。
#dd 从光标所在行开始删除#行
s 删除光标所在字元,并进入输入模式。
S 删除光标所在的列,并进入输入模式。
■复制
yw 将光标所在之处到字尾的字符复制到缓冲区中。
#yw 复制#个字到缓冲区
yy 复制光标所在行到缓冲区。
#yy 例如,6yy表示拷贝从光标所在的该行“往下数”6行文字。
p 将缓冲区内的字符贴到光标所在位置
注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
■替换
r 替换光标所在处的字符。
R 替换光标所到之处的字符,直到按下「ESC」键为止。
■撤销
u 如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复
U 撤销一行的操作
■跳至指定的行
gg 跳转到文件的开头
G 跳转到文件的结尾
#G 跳转到文件中指定的行的行首。例如:「15G」表示移动光标至文章的第15行行首。
H 移动光标到当前屏幕上面
M 移动光标到当前屏幕中间
L 移动光标到当前屏幕下面
#H 移动光标到当前屏幕的第#行
#L 移动光标到当前屏幕的倒数第#行
+ 移动光标到下一行的开始
- 移动光标到上一行的开始
ctrl + g 列出光标所在行的行号。
<二>底行模式(last line mode)功能键
■列出行号
:set nu 或 :set number 显示行号
:set nonu 或 :set nonumber 消除行号
:set ruler 设置vim在右下角显示光标的位置
:reg 查看剪切板中的内容
:pwd 获取当前工作目录
■跳到文件中的某一行
在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。
■查找字符
/string 向下查找字符串"string"
?string 向上查找字符串"string"
n 配合/string或?string使用,正方向重复
N 配合/string或?string使用,反方向重复
■退出vi及保存文件
:q 结束编辑(quit)
:q! 不想存档而要放弃编辑过的文件,强制离开
:w 存档(write),其后可加所要保存的文件
=================================================================
编辑指令:基本上可以说是由指令与范围所构成。例如 dw 是由删除指 令 d 与范围 w 所组成,代表删除一个字 d(elete) w(ord) 。
指令列表如下:
d 删除(delete)
y 复制(yank)
p 放置(put)
c 修改(change)
范围可以是下列几个:
e 光标所在位置到该字的最后一个字母
w 光标所在位置到下个字的第一个字母
b 光标所在位置到上个字的第一个字母
$ 光标所在位置到该列的最后一个字母
0 光标所在位置到该列的第一个字母
) 光标所在位置到下个句子的第一个字母
( 光标所在位置到该句子的第一个字母
} 光标所在位置到该段落的最后一个字母
{ 光标所在位置到该段落的第一个字母
值得注意的一点是删除与复制都会将指定范围的内容放到暂存区里,然后就可以用指令 p 贴到其它地方去,这是VIM用来处理区段拷贝与搬移的办法。
====替换文字列
:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky
:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符,如:
:s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/