vim常用模式为普通模式、插入模式和命令行模式
vim启动进入普通模式,处于插入模式或命令行模式时只需要按Esc
或者Ctrl+[
即可进入普通模式。普通模式中按i
(插入)或a
(附加)键都可以进入插入模式,普通模式中按:
进入命令行模式
普通模式使用下面的键将进入插入模式,并可以从相应的位置开始输入
i | 在当前光标处进行编辑 |
I | 在行首插入 |
A | 在行末插入 |
a | 在光标后插入编辑 |
:
进入命令行模式,输入
w,或x
回车,保存文档
:q! | 强制退出,不保存 |
:q | 退出 |
:wq! | 强制保存并退出 |
:w <文件路径> | 另存为 |
:saveas 文件路径 | 另存为 |
:x | 保存并退出 |
:wq | 保存并退出 |
Shift+zz
即可保存退出vim
进入普通模式,使用下列命令可以进行文本快速删除:
命令 | 说明 |
---|---|
x | 删除游标所在的字符 |
X | 删除游标所在前一个字符 |
Delete | 同x |
dd | 删除整行 |
2dd
表示一次删除2行
在普通模式下.
(小数点)表示重复上一次的命令操作,普通模式下输入x
,删除第一个字符,输入.
(小数点)会再次删除一个字符,除此之外也可以重复dd
的删除操作
- 输入
10x
,删除10个连续字符 - 输入
3dd
,将会删除3行文本
游标的快速跳转
行间跳转
nG (n Shift+g) | 游标移动到第 n 行(如果默认没有显示行号,请先进入命令模式,输入:set nu 以显示行号) |
gg | 游标移动到到第一行 |
G (Shift+g) | 到最后一行 |
gg | 游标移动到到第一行 |
G (Shift+g) | 到最后一行 |
行内跳转
w | 到下一个单词的开头 |
b | 到前一个单词的开头 |
复制及粘贴文本
普通模式中使用y
复制
- 普通模式中,
yy
复制游标所在的整行(3yy
表示复制3行)
- 普通模式中,
yw
复制一个单词。 - 普通模式中,
y2w
复制两个单词。 - 普通模式中,
yG
复制至文本末。
p
粘贴
- 普通模式中,
p
(小写)代表粘贴至光标后(下) - 普通模式中,
P
(大写)代表粘贴至光标前(上) ~
将游标所在字母变成大写或小写
剪切及粘贴
其实前面讲得dd
删除命令就是剪切,你每次
dd
删除文档内容后,便可以使用
p
来粘贴,也这一点可以让我们实现一个很爽快的功能——交换上下行:
替换和撤销(Undo)命令,替换和Undo命令都是针对普通模式下的操作
r +<待替换字母> | 将游标所在字母替换为指定字母 |
R | 连续替换,直到按下Esc |
cc | 替换整行,即删除游标所在行,并进入插入模式 |
cw | 替换一个单词,即删除一个单词,并进入插入 |
u {n} | 撤销一次或n次操作 |
U (大写) | 撤销当前行的所有修改 |
Ctrl+r | redo,即撤销undo的操作 |
使用命令进行快速调整缩进操作
- 普通模式下输入
>>
整行将向右缩进(使用,用于格式化代码超爽) - 普通模式下输入
<<
整行向左回退 - 普通模式下输入
:
进入命令行模式下对shiftwidth
值进行设置可以控制缩进和回退的字符数
:
进入命令行模式下对
shiftwidth
值进行设置可以控制缩进和回退的字符数 获取目前的设定值
:set shiftwidth=10
快速查找
普通模式下输入
/
然后键入需要查找的字符串 按回车后就会进行查找。
?
与
/
功能相同,只不过
?
是向上而
/
是向下查找。 进入查找之后,输入
n
和
N
可以继续查找
n
表示继续查找,
N
反向查找
高级查找
- 普通模式下输入
\*
寻找游标所在处的单词 - 普通模式下输入
\#
同上,但\*
是向前(上)找,#则是向后(下)找 - 普通模式下输入
g\*
同\*
,但部分符合该单词即可 - 普通模式下输入
g\#
同\#
,但部分符合该单词即可
使用vim编辑多个文件
- 命令行模式下输入
:n
编辑2.txt文件,可以加!
即:n!
强制切换,之前一个文件的输入没有保存,仅仅切换到另一个文件 - 命令行模式下输入
:N
编辑1.txt文件,可以加!
即:N!
强制切换,之前文件内的输入没有保存,仅仅是切换到另一个文件
进入vim后打开新文件
- 命令行模式下输入
:e 3.txt
打开新文件3.txt - 命令行模式下输入
:e#
回到前一个文件 - 命令行模式下输入
:ls
可以列出以前编辑过的文档 - 命令行模式下输入
:b 2.txt
(或者编号)可以直接进入文件2.txt编辑 - 命令行模式下输入
:bd 2.txt
(或者编号)可以删除以前编辑过的列表中的文件项目 - 命令行模式下输入
:e! 4.txt
,新打开文件4.txt,放弃正在编辑的文件 - 命令行模式下输入
:f
显示正在编辑的文件名 - 命令行模式下输入
:f new.txt
,改变正在编辑的文件名字为new.txt
恢复文件
vim -r
进入文档后,输入
:ewcover 1.txt
来恢复