光标移动
h 左
l 右
j 下
k 上
w 移动到下一个单词
b 移动到上一个单词
插入模式
i 在当前光标处进行编辑
I 在行首插入
A 在行末插入
a 在光标后插入编辑
o 在当前行后插入一个新行编辑
O 在当前行前插入一个新行编辑
cw 替换从光标所在位置后到一个单词结尾的字符
删除文本
x 删除光标所在位置的字符
X 删除光标所在的前一个字符
dd 删除整行
dw 删除一个单词
D(d$) 删除至行尾
d^ 删除至行首
dG 删除至文档结尾
d1G 删除到文档开始
dgg 删除到文档开始
d${n}g 删除到指定行
快速跳转
nG 跳转到第n行
gg 跳转到第一行
G 跳转到最后一行
ctrl + o 回到上次光标所在位置
行内跳转
w 到下一个单词的开头
e 到当前单词的结尾
b 到前一个单词的开头
ge 到前一个单词的结尾
0 ^ 到行头
$ 到行尾
剪切、复制、粘贴
y 复制
yy 复制所在行
${n}yy 复制n行
y^ 复制至行首,不含光标所在出的字符
y$ 复制至行尾
yw 复制一个单词
y2w 复制两个单词
yG 复制至文本末
y1G 复制至文本开头(ygg)
p 粘贴至光标后
P 粘贴至光标前
字符的替换及撤销
r+
R 连续替换,直到按下ESC
cc 替换整行,即删除所在行,并进入编辑模式
cw 替换一个单词,即删除一个单词,并进入插入模式
C 替换光标以后至行末
~ 翻转光标所在字母大小写
u{n} 撤销一次或n次操作
U 撤销当前所有的修改
ctrl+r redo,即撤销undo的操作
查找
输入 /
然后键入要查找的字符串回车后就会进行查找,?
和 /
功能相同,只不过 ?
是向上查找,/
是向下查找。进入查找后,输入 n
查找下一个内容,输入 N
查找上一个内容。
* 向下寻找光标所在处的单词
# 向上寻找光标所在处的单词
g* 向下部分匹配查找
g# 向上部分匹配查找
多文件编辑
vim 1.txt 2.txt
命令行模式下输入 :n
编辑下一个文件,输入 :N
编辑上一个文件。可以添加 !
表示强制切换,之前文件内的输入没有保存,仅仅是切换文件。
:e 3.txt 打开新文件
:e# 回到前一个文件
:ls 列出当前编辑过的文件
:b 2.txt 可以直接编辑该文件,文件名可以为ls中的编号
:bd 2.txt 删除以前编辑过的列表中的文件项目,文件名可以为ls中的编号
:e! 4.txt 打开新文件,并放弃正在编辑的文件
:f 显示正在编辑的文件名
:f new 将当前编辑的文件另存为
恢复文件
未保存文件强制退出后可以 vim -r
进入文档后,输入 :ewcover 1.txt
来恢复
可视化模式
v 进入字符选择模式,光标走过的地方会被选取,再次输入v会取消选取。
V 进入行选择模式,会选择整行,再次输入V会取消选取。
d 删除选区内容
y 复制选区内容
视窗操作
:new 打开一个新的视窗
:sp 1.x 打开新的水平分视窗,编辑1.x
:vsp 1.x 打开新的水平分视窗,编辑1.x
ctrl+w s 将当前窗口分割成两个水平的窗口
ctrl+w v 将当前窗口分割成两个垂直的窗口
ctrl+w q 等价于:q
ctrl+w o 打开一个视窗并隐藏之前的所有视窗
ctrl+w j 移至下面视窗
ctrl+w k 移至上面视窗
ctrl+w h 移至左边视窗
ctrl+w l 移至右边视窗
ctrl+w J 将视窗移至上面
ctrl+w K 将视窗移至下面
ctrl+w H 将视窗移至左边
ctrl+w L 将视窗移至右边
ctrl+w - 减小视窗的高度
ctrl+w + 增加视窗的高度