模式介绍
vim会有4种常见的模式,分别为普通模式、命令模式、插入模式、可视模式。
普通模式:利用vim打开某个文件时,即进入普通模式。
普通模式转为命令模式,使用 “:”。
普通模式转为插入模式,在键盘上输入以下字母:"i,I,a,A,o,O"中任意一个。
普通模式转为可视模式,在键盘上输入字母:“V”,注意是大写。
命令模式、插入模式、可视模式转为普通模式,键盘上按下"Esc"按键。
2.常用命令
2.1 普通模式
2.1.1 移动光标:
按键 | 按键功能 |
---|---|
k或向上箭头 | 向上移动光标 |
j或向下箭头 | 向下移动光标 |
h或向左箭头 | 向左移动光标 |
l或向右箭头 | 向右移动光标 |
gg | 文件首行的行首 |
GG | 文件尾行的行首 |
ngg | 移动到第n行的行首 |
2.1.2 删除操作:
注意,删除时会将文本内容进行缓存,然后通过粘贴,实现剪切功能。
按键 | 按键功能 |
---|---|
x | 删除光标处的一个字符 |
dd | 删除光标处的所在行 |
ndd | 删除从光标所在行开始的n行(包含光标行),1dd等于dd |
dw | 删除从光标位置开始的一个单词 |
d$ | 删除从光标处到该行行尾的字符 |
d^ | 删除光标处到该行行首的字符 |
dG | 删除光标行到行尾的所有行 |
dnG | 删除从光标行到第n行(包含第n行) |
2.1.3 复制:
按键 | 按键功能 |
---|---|
yy | 复制光标所在行 |
y$ | 复制从光标处到该行行尾的字符 |
y^ | 复制从光标处到该行行首的字符 |
nyy | 复制从光标所在行开始的n行(包含光标行),1yy等于yy |
yG | 复制从光标行到行尾的所有行 |
ynG | 复制从光标行到第n行(包含第n行) |
2.1.4 粘贴:
按键 | 按键功能 |
---|---|
p | 将复制的内容粘贴到光标所在行的下一行(小写,地位低,居下方) |
P | 将复制的内容粘贴到光标所在行的上一行(大写,地位高,居上方) |
2.1.5 替换:
按键 | 按键功能 |
---|---|
r | 替换光标处的一个字符 |
R | 从光标处开始往后连续替换 |
cc | 替换光标所在行 |
c$ | 替换光标处到该行行尾 |
c^ | 替换光标处到该行行首 |
cG | 替换从光标行到行尾 |
cnG | 替换从光标行到第n行(包含n行) |
2.1.6 可视块操作:
按键 | 按键功能 |
---|---|
u | 撤销(返回上一步) |
ctrl+r | 重做,与u操作相反 |
ctrl+v | 对可视化块进行批量操作 |
ctrl+v,选取区块,x | 批量删除 |
ctrl+v,选取区块,shift+i,输入内容,Esc | 批量编辑 |
2.2 命令模式
2.2.1 文件的保存和退出:
按键 | 按键功能 |
---|---|
:w | 保存 |
:q | 退出 |
:wq | 保存并退出 |
:x | 保存并退出 |
:wq! | 强制保存并退出 |
:q! | 不保存并退出 |
2.2.2 显示文件名称,切换文件:
:args,显示该文件的名称
2.2.3 编辑某文件时,新打开:
:e
2.2.4 将正在操作的文件另存为~/:
:saveas ~/
2.2.5 切分窗口
按键 | 按键功能 |
---|---|
:split | 上下分屏 |
:nsplit | 打开一个高度为3的窗口,并打开 |
:vsplit | 左右分屏 |
可以利用ctrl+w将光标在各窗口之间进行切换
:qa! 或 :qa ,可退出所有窗口。
2.2.6 字符串替换
按键 | 按键功能 |
---|---|
:%s/old_string/new_string | 全局替换 |
: s /old_string/new_string | 替换光标所在行 |
: n, $s /old_string/new_string | 替换第 n行开始到最后一行中的第一个old_string |
: n,$s /old_string/new_string/g | 替换第n行开始到最后一行的所有old_string |
2.2.7 跳转到某一行
:n,跳转到第n行
2.2.8 设置选项
:set,设置选项
:set nonu,不显示行号
:set nu,显示行号
具体设置情况,可在~/.vimrc文件中进行查看和设置,从而使配置永久生效。
2.3 插入模式
按键 | 按键功能 |
---|---|
i | 在光标前插入 |
I | 在光标所在行的行首插入 |
a | 在光标后插入 |
A | 在光标所在行的行尾追加 |
o | 在光标所在位置的下一行打开新行插入 |
O | 在光标所在位置的上一行打开新行插入 |
2.4 可视模式
按键 | 按键功能 |
---|---|
v | 每次选择一个字符 |
V | 每次选择一行 |
ctrl+v | 批量编辑,详见2.1.6 |
gv | 重选上一次的高亮区 |
选中后,按下d | 删除所选中部分 |
选中后,按下D | 删除所选中部分所在的行 |
选中后,按下v | 复制选中的部分 |
选中后,按下V | 复制所选中部分的所在行 |
选中后,按下c或C | 删除所选中部分(选中部分所在行),并切换到输入模式 |
选中后,按下J | 将选中部分合并为一行 |
选中后,按下r | 将选中的部分的每个字符替换为新字符 |
3.其他技巧
3.1 操作技巧
按键 | 按键功能 |
---|---|
普通模式下ctrl+z | 将编辑的文档挂起 |
普通模式下 /search_string | 在文档中查找某些字符串,n向下查找,N向上查找 |
文档挂起后:在终端输入jobs,可以查看所有挂起的文档;在终端输入fg %n,可以进入某个挂起的文档进行编辑;在终端输入fg,可以快速进入最后一个标记挂起(前面有+)的文档中。
3.2 提升技巧
3.2.1 内置的训练模式
在终端输入 vimtutor(英文模式) 或vim zh(汉化模式)
3.2.2 其他
可以在终端中,可以输入man vim ,查看在线手册。
3.3 常用命令举例
#3显示行号和不显示行号
set nu
set nonu
#取消高亮显示
:nohl