Skip to content

Vim 命令使用(详细总结)" ​

vim 编辑器简介 ​

vim 是一个全屏幕纯文本编辑器,是 vi 编辑器的增强版。你可以利用别名让输入 vi 命令的时候,实际上执行 vim 编辑器

vim的工作模式 ​

vim一共有三种工作模式:

1.命令模式

2.输入模式

3.末行模式

vim工作模式

保存退出命令 ​

末行模式:

:w 作用 :保存当前文件。

:wq 或:x 作用 :保存并退出 Vim。

:q 作用 :退出 Vim。

:q! 作用 :强制退出 Vim,不保存修改。
示例 :

bash
:q!

说明 :强制退出 Vim,不保存当前文件的修改。

光标移动命令 ​

上下左右移动 ​

text
h 光标向左移动一个字符

j 光标向下移动一行

k 光标向上移动一行

l 光标向右移动一个字符

常用的命令 ​

text
gg 将光标跳转到文件的第一行

G 将光标跳转到文件的最后一行

10G 跳转到指定行号的行,将光标跳转到第 10 行

0 将光标移动到当前行的开头

$ 将光标移动到当前行的末尾

^ 将光标移动到当前行的第一个非空白字符

g_ 将光标移动到当前行的最后一个非空白字符

编辑命令 ​

常用

text
i 进入插入模式,在当前光标位置插入文本

dd 删除光标所在的一整行

10dd 从当前行开始向下删除10行

yy 复制光标所在的一行文本

10yy 复制光标所在的10行文本

p 粘贴复制的文本到光标所在位置的下一行

u 撤销上一次的编辑操作

ctrl+r 重做上一次撤销的编辑操作

少用

text
a 进入插入模式,在当前光标后插入文本

小写o 进入插入模式,在光标所在行的下一行插入文本

大写O 进入插入模式,在光标所在行的上一行插入文本

x 删除光标所在位置的字符

D 删除从光标位置到行尾的文本

查找和替换命令 ​

/查找文本 查找文件中的文本内容

bash
/search_string

说明 :查找文件中的 search_string ,按回车键后光标会移动到找到的第一个匹配位置。

n 查找下一个匹配项

N 查找上一个匹配项

:set ignorecase: 在查找时忽略大小写。
:set noignorecase: 在查找时区分大小写。
:set hlsearch: 高亮显示所有匹配的查找结果。
:set nohlsearch: 取消高亮显示查找结果。

注意:先输入以上命令之后,再进行查找,就可以实现这个效果了

:s/旧文本/新文本/ 替换当前行中第一个匹配的旧文本为新文本

bash
:s/old/new/

说明 :将当前行中第一个匹配的 old 替换为 new

:%s/旧文本/新文本/g 替换整个文件中所有匹配的旧文本为新文本

bash
:%s/old/new/g

说明 :将整个文件中所有匹配的 old 替换为 new

可视模式命令 ​

text
小写v 进入普通可视模式,可以选择任意文本

大写V 进入行可视模式,可以选择整行

crtel+v 进入块可视模式,可以选择列块

以上选中文本,可以配合以下命令进行操作

y 复制选中的文本

d 删除选中的文本

c 修改选中的文本,进入插入模式

其他常用命令 ​

经常用

text
:set nu 在编辑器中显示行号

:set nonu 在编辑器中隐藏行号

:w! 强制保存文件,即使文件是只读的

较少用

text
:help 打开 Vim 的帮助文档,查看详细的命令和用法

:version 查看 Vim 的版本信息

:r file 读取文件内容并插入到当前文件中
bash
:r file.txt

说明 :读取 file.txt 的内容并插入到当前文件中

:sp file 在当前窗口中打开文件

bash
:sp file.txt

说明 :在当前窗口中打开 file.txt

:vsp file 在垂直分割的窗口中打开文件

bash
:vsp file.txt

说明 :在垂直分割的窗口中打开 file.txt

:tabnew file 在新标签页中打开文件

bash
:tabnew file.txt

说明 :在新标签页中打开 file.txt

:tabclose 关闭当前标签页

:tabnext 切换到下一个标签页

:tabprevious 切换到上一个标签页

:tabmove +n 将当前标签页移动到第 n 个位置

bash
:tabmove +1

说明 :将当前标签页移动到第 1 个位置。

:tabmove -n 将当前标签页移动到倒数第 n 个位置

:tabonly 关闭除当前标签页外的所有标签页

:tabfirst 切换到第一个标签页

:tablast 切换到最后一个标签页

:tabnext n 切换到第 n 个标签页

bash
:tabnext 2

说明 :切换到第 2 个标签页

:tabprevious n 切换到倒数第 n 个标签页