Vim的学习
普通模式
直接使用vim命令后进入vim的普通模式,在其他模式下,按下ESC
即可返回普通模式
插入模式
在普通模式下i, I, a, A
等键即可进入插入模式,插入模式下,按键则会输入
可视模式
在普通模式下,按下v, V, <Ctrl>+v
即可进入
命令行模式
在普通模式下,按下:
即可进入
Ex模式
在进入Vim时,加上-e
参数即可进入
使用方向键或者h,j,k,l
进行移动
按键 | 方向 |
---|---|
h,← | 左 |
l,→ | 有 |
j,↓ | 下 |
k,↑ | 上 |
行内移动
在行内以移动游标
按键 | 说明 |
---|---|
w | 右移到下一个单词的开头 |
e | 右移到下一个单词的末尾 |
b | 左移到前一个单词的开头 |
0 | 右移到本行的开始 |
$ | 右移到本行的末尾 |
^ | 左移到本行的第一个非空字符 |
在相邻页之间移动
按键 | 说明 |
---|---|
crtl +f | 前移一页 |
crtl +b | 后移一页 |
在页内快速移动
按键 | 说明 |
---|---|
H | 将光标移到该页的起始行 |
M | 将光标移到该页的中间行 |
L | 将光标移到该页的末尾行 |
大范围移动
按键 | 说明 |
---|---|
* | 将光标移到该单词的下一个位置 |
# | 将光标移到该单词的上一个位置 |
g | 将光标移到文件的第一行 |
G | 将光标移到文件的末尾行 |
搜索
输入/
+内容
指令 | 说明 |
---|---|
\ +str | 向下搜索字符串str |
n | 继续搜索 |
N | 反向搜索 |
? +str | 反向搜索字符串str |
替换
替换命令之后,会进入插入模式,按下`ESC`即可返回普通模式
指令 | 说明 |
---|---|
s | 用输入的正文替换游标所在的字符 |
ns | 用输入的正文替换游标右侧n 个字符 |
c$ | 用输入的正文替换从游标开始到行尾的所有字符 |
c0 | 用输入的正文替换从本行开始到游标的所有字符 |
删除
主要由d
和x
完成删除操作
指令 | 说明 |
---|---|
x | 删除游标所在的字符 |
X | 删除游标所在前一个字符 |
dw | 删除游标右的单词 |
dd | 删除游标所在行 |
d0 | 删除光标到行的开始 |
d$ | 删除光标到行的末尾 |
复制
指令 | 说明 |
---|---|
yy | 复制游标所在行到缓冲区 |
nyy | 复制n 行到缓冲区 |
粘贴
复制后,使用命令粘贴
指令 | 说明 |
---|---|
p | 粘贴到游标后 |
P | 粘贴到游标前 |
撤销
指令 | 说明 |
---|---|
u | 撤销上次操作 |
重复
指令 | 说明 |
---|---|
u | 重复上次操作 |
进入插入模式
指令 | 说明 |
---|---|
i | 在游标处插入 |
I | 在行首插入 |
a | 在游标右侧插入 |
A | 在行末插入 |
o | 在当前行后添加一行插入 |
O | 在当前行前添加一行插入 |
游标移动
按键 | 方向 |
---|---|
← | 左 |
→ | 有 |
↓ | 下 |
↑ | 上 |
退出插入模式
指令 | 说明 |
---|---|
ESC | 退出插入模式 |
Crtl +[ | 退出插入模式 |
首先需要进入命令模式:进入Vim后,输入:
后·,即可进入
一些操作
打开文件
e
+文件名
:e ehpc.txt
则可打开ehpc.txt文件
保存文件
使用命令w
保存文件
:w other-ehpc.txt
退出Vim
未作修改,需要使用q
进行退出
如果有修改内容,但不保存,则可以使用q!
强制退出
如果想要保存内容,并退出,可以使用命令wq
行号操作
直接输入行号进行跳转:
: n
:跳转到第n
行
结合其他命令:
:nw 文件名
将n
行写入文件:m,nw 文件名
将m
到n
行写入文件:m,.w 文件名
将m
到当前行写入文件:.,$w 文件名
将当前行到最后一行写入文件
文件操作
:r 文件名
读取文件并插入到游标之后:f 文件名
重命名文件:f
输出当前文件名称和状态
内容替换
:%s/str1/str2/
用str2
替换行中首次出现的str1
- 通过
g
参数可以达到替换所有的操作:
:s/str1/str2/g
用str2
替换行中出现的str1
- 还可以指定行数,例如:
:1,$ s/str1/str2/g
用字符串str2
替换正文中所有出现的字符串str1
上述操作也可以通过:g/str1/s//str2/g
实现
文件恢复
通过:recover
可以恢复意外退出而没有保存的文件
选项设置
:set
命令设置选项
选项 | 说明 |
---|---|
autoindent | 自动缩进 |
number | 显示行号 |
ignorecase | 忽略正则表达式的大小写 |
ruler | 显示游标位置 |
分屏
Vim中使用命令进行分屏操作:
命令 | 说明 |
---|---|
split ,sp | 水平分屏 |
vsplit ,vsp | 垂直分屏 |
在启动Vim时分屏,在启动时加入参数:
vim -On file1 file2...
打开 file1 和 file2 ,垂直分屏
vim -on file1 file2...
打开 file1 和 file2 ,水平分屏
各屏幕间移动:
命令 | 说明 |
---|---|
Ctrl +w +h | 当前屏的左分屏 |
Ctrl +w +l | 当前屏的右分屏 |
Ctrl +w +j | 当前屏的下分屏 |
Ctrl +w +k | 当前屏的上分屏 |
diff
直接输入vimdiff file1 file2
可以在Vim里分屏显示两个文件的差异
也可以通过diffsplit file
与其他文件进行比较