Vim 简介
vim是一个Unix文本编辑器,它以快速高效而闻名,是在终端中运行的小应用程序(当然也有图形界面),它最主要的特点是完全可以通过键盘控制,而不需要菜单栏或鼠标。
使用vim打开文件后,一般会用到三种模式:命令模式(command mode)、输入模式(insert mode)和底行命令模式(last line mode)。
刚启动vim时,默认进入命令模式。这时候,我们敲打键盘的字母会被识别为不同的命令。如方向键h、j、k、l;输入键i、a、o,切换到输入模式;冒号键:,切换到底行命令模式。
三种模式的切换关系如下:
常用Vim命令及快捷操作
下面是日常用的比较多的一些命令
vi test.txt 打开或创建一个文件,默认是命令模式
切换到编辑模式:
i 是在光标前面插入内容,
a 在光标后面插入内容,
o 在光标下一行插入内容,
I 在行首插入内容,
A 在行尾插入内容,
O 在光标上一行插入内容
esc键 退回到命令模式
: 切换到末行模式
:wq 保存退出
:wq! 强制保存并退出
:q! 不保存退出
Shift + zz 相当于:wq
:set number 显示行号,如果想要每次都显示行号则执行 vim ~/.vimrc 创建文件并添加 :set number
命令模式:复制、剪切、删除、撤销
yy 复制光标所在行
4yy 复制光标所在行向下4行
p 粘贴
dd 剪切光标所在行
3dd 剪切光标所在行向下3行
d0 剪切光标到第一行的内容
D 从当前光标开始到末尾剪切
x 删除光标后面一个字母
X 删除光标前面一个字母
[N]dw 删除光标往后的N个单词,dw删除一个单词
d$ 删除光标所在行光标之后所有的内容
u 撤销当前操作
Ctrl + r 反撤销
命令模式:光标定位
j 光标向下 k 光标向上 h 光标向左 l 光标向右
M 光标定位到当前页中间
H 光标定位到当前页第一行
L 光标定位到当前页最后一行
:n 编辑模式下,将光标移动到指定行,如:20移动到第20行
20G 快速定位到第20行
G 快速到代码最后一行
gg 快速回到代码第一行
w/W 跳至下一个单词词首(前面可加数字,光标移动多个单词,如4w)
b/B 跳至上一个单词词首(前面可加数字,光标移动多个单词,如20B)
e/E 跳至下一个单词词尾(前面可加数字,光标移动多个单词)
0/^ 光标移动到当前行行首
$ 光标移动到当前行行尾
fa 光标移动到当前行下一个a字母处
FA 光标移动到当前行下一个A字母处
% 当光标在括号 ( [ { } ] ) 处时,按%会定位到与之成对的括号处
Ctrl - ] 打开光标所在的文件
Ctrl 0 返回上一次窗口
Ctrl f 向下翻一页
Ctrl b 向上翻一页
v(V) + h,j,k,l 选中多行
>> 向右移动
<< 向左移动
. 重复执行命令
:%s/str1/str2/g 将所有的str1替换为str2
:%s/str1/str2/ 将所有行的第一个str1替换为str2
/ 搜索
Vim 键位图
Vim命令非常多,如果不是经常使用很容易忘记, 下面是一位大佬画的vim命令对应键盘的键位图,可以对照命令加上实际上手操作来记忆

另外vim还提供了一个常用命令的学习教程,在Linux环境下输入:vimtutor即可。