什么是vim?
Vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。连 vim 的官方网站 (https://www.vim.org/) 自己也说 vim 是一个程序开发工具而不是文字处理软件。vim是vi的加强版。
vi/vim的使用
基本上vi/vim共分为三种模式,分别是命令模式(Command mode)、输入模式(Insert mode)、和一般模式(默认模式)。
怎么打开vi编辑器?
先要安装vim,sudo apt-get install vim
![](https://i-blog.csdnimg.cn/blog_migrate/8afda0c99d295a1692bff12010485d74.png)
直接在控制台输入命令:vi filename/vim filename
如果当前路径没有我们要打开的文件,vi会帮我创建一个,如果当前路径有文件,则会直接打开这个文件
vi编辑器的三种模式
一般模式
直接打开文件默认就是一般模式
![](https://i-blog.csdnimg.cn/blog_migrate/ca5da4b85e021643c8b3e64c4737e336.png)
一般模式快捷键
快捷键 | 功能描述 | |
光标移动 | k / ↑ | 光标向上移动 |
j / ↓ | 光标向下移动 | |
h / ← | 光标向左移动 | |
l / → | 光标向右移动 | |
PageUp | 向上翻页 | |
PageDown | 向下翻页 | |
n+shift+g | 跳转到第n行 | |
shift+g | 跳转到最末行 | |
gg | 跳转到第一行 | |
文本查找与替换 | /word | 在文件中搜索关键字word |
n | 查找下一个关键字 | |
N | 查找上一个关键字 | |
撤销重做 | u | 撤销上一步的操作,等价于Windows的Ctrl+Z |
Ctrl+r | 重做上一步的操作。 | |
删除、剪切、复制、粘贴 | dw | 删除一个单词 |
dd | 删除当前行 | |
ndd | 删除光标后n行 | |
x | 剪切光标选中的字符 | |
y | 复制光标所选的内容 | |
yy | 复制当前行 | |
nyy | 复制当前行后n行 | |
p | 将复制的数据粘贴在当前行的下一行 | |
P | 将复制的数据粘贴在当前行的上一行 | |
区块操作 | v | 选择多个字符 |
V | 可以选择多行 |
插入模式
可以按键盘的i从一般模式切换到插入模式
![](https://i-blog.csdnimg.cn/blog_migrate/5ccd01bb80802193a22b8ca9c1aa02e4.png)
从插入模式切换到一般模式,直接按esc键
进入/退出插入模式快捷键
快捷键 | 功能描述 |
i | 在当前光标所在位置插入文本 |
a | 在当前光标所在位置的下一个字符插入文本 |
o | 在光标所在位置后插入新行 |
r | 替换当前光标所在位置的字符 |
R | 可以替换当前光标所在位置之后的字符,按下”Esc”则退出 |
ESC | 退出插入模式 |
命令行模式
按键盘上的:可以切换到命令行模式
![](https://i-blog.csdnimg.cn/blog_migrate/d002752a9769badadbde22ffb31822c8.png)
如果在命令行模式下,输入set number可以显示行号
命令行模式快捷键
快捷键 | 功能描述 |
w | 保存文档 |
w | 另存为以为文件名的文档 |
r | 读取文件名为filename的文档 |
q | 直接退出软件,前提是文档未做任何修改 |
q! | 不保存修改,直接退出软件 |
wq | 保存文档,并退出软件。 |
set nu | 在行首加入行号 |
set nonu | 不显示行号 |
set hlsearch | 搜索结果高亮显示 |
! command | 回到终端窗口,执行command命令,按回车键可切回vim。 |
vim编辑器移动光标
可以使用上下左右按键,如果没有小键盘,可以是通过键盘的KJHL来移动光标
K:向上移动
J:向下移动
H:向左移动
L:向右移动
vim编辑器的快速定位
gg:将光标定位到第一行
G:将光标定位到最后一行,我试了好像shift+g也可以
ngg:将光标定位到底n行
vim编辑器的复制
先将光标放在我们要复制的内容的行首,使用上下左右按键来选择文字,选择好之后按键盘上的Y,接着按ESC回到一般模式,把光标移动到我们要复制的地方,然后按键盘上的P
这里可以先按下v就是可视化,可以选择多行
![](https://i-blog.csdnimg.cn/blog_migrate/63ba6555bcccc2d7e59c9883e24c3884.png)
使用快捷键来复制
先将光标放在我们要复制的内容的行首,双击"yy",然后把光标移动到我们要复制的地方,接着按P
yy:复制当前行
nyy:复制当前行下的N行
vim编辑器的删除命令
方法一:直接进入插入模式,使用delete删除
方法二:使用dd命令
dd:删除光标所在行
ndd:删除n行
n1,n2d:删除指定范围的行,需要在命令模式下操作
vim的撤销
在一般模式下直接按键盘上的“u”,注意,关闭过的文本文件不能再撤销如果不清楚自己现在在哪个模式,可以使用esc按键来回到一般模式反撤销:ctrl+r
vim的保存
q!:强制退出,不保存
wq:保存退出
q:退出不保存,前提是没有修改过文件
vim的文件对比
vimdiff file1 file2 file3