vim 编辑器
[TOC]
vim简介
vi 是 Visual interface 的简称,是 Linux 中 最经典 的文本编辑器
vim 即vi improved,是从 vi 发展出来的一个文本编辑器,支持 代码补全、编译 及 错误跳转 等方便编程的功能特别丰富,在程序员中被广泛使用,被称为 编辑器之神,和Emacs并列成为类Unix系统用户最喜欢的编辑器。
vim 的特点:
- 没有图形界面 的编辑器
- 只能是编辑 文本内容,不能对字体、段落进行排版
- 不支持鼠标操作
- 没有菜单
- 只有命令
- 在使用
vi命令时,注意 关闭中文输入法
Vim打开文件
| 命令 | 功能 |
|---|---|
| vim 文件路径 | 打开文件,并且将光标移动到首行,如果文件不存在,则新建 |
| vim 文件的路径 +行号 | 打开文件,并且将光标移动到指定行号位置 |
| vim 文件的路径 + | 打开文件,并且将光标移动到最后一行 |
| vim 文件的路径 +/关键词 | 打开文件,并且高亮显示搜索关键词 |
| vim 文件的路径 -r | 在上次vim编辑时崩溃,恢复编辑 |
| vim 文件路径1 文件路径2 文件路径3 | 同时打开多个文件,依次编辑 |
vim password.txt +/login # 高亮显示==login==字符
vim打开文件,如果文件不存在,则会新建一个文件
异常退出处理
什么是异常退出:在编辑文件之后并没有正常的去wq(保存退出),而是遇到突然关闭终端或者断电的情况,则会显示下面的效果,这个情况称之为异常退出
如果 vi 异常退出,在磁盘上会生成隐藏的xxx.swp交换文件(在编程过程中产生的临时文件),下次再使用 vi 编辑该文件时,会看到以下屏幕信息
解决办法:根据提示按下字母 d 可以 删除交换文件 或者 手动rm .xxx.swp删除隐藏的交换文件即可
rm -f .xxx.swp # 删除隐藏的交换文件
vim 三种模式
vi 有三种基本工作模式:
- 命令模式 —— 执行定位、翻页、复制、粘贴、删除……
- 打开文件后默认进入命令模式,是使用vim的入口
- 通过命令对文件进行常规的编辑操作,例如:定位、翻页、复制、粘贴、删除……
- 末行模式 —— 执行 保存、退出、 搜索、替换、撤销、高亮等操作
- 要退出 vim 返回到控制台,需要在末行模式下输入命令
- 末行模式是 vim 的出口
- 编辑模式 —— 正常的编辑文字
命令模式
实现光标移动,复制,粘贴,删除
1. 光标移动
上、下、左、右
| 快捷键 | 功能 | 手指 |
|---|---|---|
| h 或 (←) 3h | 左移 左移3格 | 食指 |
| j 或 (↓) 3j | 下移 下移3行 | 食指 |
| k 或 (↑) 3k | 上移 上移3行 | 中指 |
| l 或(→) 3l | 右移 右移3格 | 无名指 |
| Space | 光标右移一个字符 | |
| Backspace | 光标左移一个字符 | |
| Enter | 光标下移一行 |
==hjkl== 是排列在一行的,因此可以使用这四个按钮来移动光标。
在命令模式下,先输入一个数字,再跟上一个命令,可以让该命令 重复执行指定次数
3h向左移动 33j向下移动 3 行3k向上移动 3行3l向右移动 3
行内移动
| 命令 | 英文 | 功能 |
|---|---|---|
| h | 向前移动一个字符 | |
| l | 向后移动一个字符 | |
==w== |
word | 向前移动一个单词(在单词==开头==) |
==b== |
back | 向后移动一个单词(在单词==开头==) |
==e== |
end | 移到当前单词的末尾(==词尾==),或向后移动一个单词(在单词==末尾==)(与w区别) |
0 |
行首次行开头,不论是否有字符 | |
^ |
||
$ |
3w # 前移 3 个单词 dw # 删除前一个单词 db # 删除后一个单词
行数移动
| 命令 | 英文 | 功能 |
|---|---|---|
==gg== |
gogo | 到文档第一行 |
==G== |
Go | 移动到文档最后一行 |
| 3- | ==3k== | 上跳3行 |
| 3+ | ==3j== | 下跳3行(同下) |
| 下跳8行(连续跳8个Enter) | ||
| 跳到指定行号(作用同下) | ||
| 跳到指定行号(作用同下) | ||
| ==行号gg== | 123gg | 跳到指定行号 |
:行号11移动光标到行号为11的行11gg移动光标到行号为11的行,最快
查找字符移动
| 命令 | 功能 |
|---|---|
==f== |
向前查找字母 |
==F== |
向后查找字母 |
fx 向前查找字符 x
屏幕内移动
| 命令 | 英文 | 功能 |
|---|---|---|
| H | Head | 光标移至屏幕顶部 |
| M | Middle | 光标移至屏幕中间 |
==L== |
Low | 光标移至屏幕底部 |
段落移动
vi 中使用 空行 来区分段落
| 命令 | 功能 |
|---|---|
=={== |
上一段(空行分隔) |
==}== |
下一段(空行分隔) |
vi 中使用 . 来区分句子
| 命令 | 功能 |
|---|---|
==(== |
上一句子( . 分隔) |
==)== |
下一句子( . 分隔) |
括号间切换
在程序世界中,()、[]、{} 使用频率很高,而且 都是成对出现的
| 命令 | 功能 |
|---|---|
==%== |
光标切换到括号另一半 |
括号自动匹配高亮()、[]、{}
翻屏
| 命令 | 英文 | 功能 |
|---|---|---|
==Ctrl + u== |
up | 向上翻屏(上半屏) |
==Ctrl + d== |
down | 向下翻屏(下半屏) |
| Ctrl + b | back | 向上翻屏(整屏) |
| Ctrl + f | forward | 向下翻屏(整屏) |
2. 插入文本
i a o I A O 进入编辑模式
| 命令 | 英文 | 功能 |
|---|---|---|
==i== |
insert | 在当前字符前插入文本 |
==a== |
append | 在当前字符后追加文本 |
==I== |
在行首插入文本 | |
==A== |
在行尾追加文本 | |
==o== |
over | 在当前行下面插入一空行 |
==O== |
在当前行上面插入一空行 |
i(insert)插入,a(append)追加,o(over)空行,小写表示下,大写表示上
3. 选中文本
在 vim 中要选择文本,需要先使用Visual命令切换到 可视模式
vim中提供了 三种 可视模式,可以方便程序员选择 选中文本的方式
| 命令 | 模式 | 功能 |
|---|---|---|
==v== |
可视模式 | 选中光标经过的单个==字符== |
==V== |
可视行模式 | 选中光标经过的==整行== |
| 可视块模式 | 垂直方向选中文本 | |
| ggVG | 选中全文 |
可视模式下,可以和 移动命令 连用,例如:ggVG 能够选中所有内容
注销多行代码:
Ctrl + V选中多行代码,==I== 在选中的行首插入 //
按 ESC 可以放弃选中,返回到 命令模式
4. 复制
| 快捷键 | |
|---|---|
==y== |
复制选中 |
==yw== |
向前复制一个单词,复制从光标开始到词尾的字符 |
==yb== |
向后复制一个单词 |
| 3yw y3w | 复制从光标开始的3个单词 |
| y^ | 复制从光标到行首的内容 |
| y$ | 复制从光标到行尾的内容 |
==yy== |
复制光标所在整行 |
| 3yy | 向下复制 3 行 |
数字yy 以光标所在行为准(包含当前行),向下复制指定的行数
在想要粘贴的地方按下p键粘贴
5. 粘贴
| 快捷键 | |
|---|---|
==p== |
粘贴paste,粘贴在当前光标后(append) |
==P== |
粘贴在光标前,(insert) |
==Ctrl + ;== |
在编辑模式,调出 ==Fcitx== 的剪贴板==粘贴==(实现vim粘贴系统粘贴板复制的内容) |
注意: vim 中的 文本缓冲区 和系统的 剪贴板 不是同一个,所以在其他软件中使用 CTRL + C 复制的内容,不能在 vim 中通过 P 命令粘贴, 可以在 编辑模式 下使用 鼠标右键粘贴,或者==Ctrl + ;==调出 ==Fcitx== 的剪贴板实现vim粘贴系统粘贴板复制的内容
6. 剪切/删除
| 命令 | 英文 | 功能 |
|---|---|---|
==x== |
Delete | Delete 删除光标所在字符 |
| 3x | 删除3个字符 | |
==X== |
Backspace | Backspace 删除光标左边字符 |
==d== |
delete | 删除==选中==内容 |
==dd== |
删除光标所在整行 | |
| 3dd | 删除 3 行 | |
==dw== |
d+w | ==删除==前一个==单词== |
| 3dw d3w | 删除前3个单词 | |
==db== |
d+b | ==删除==后一个==单词== |
| de | d+e | 删除后一个单词(到词尾) |
==d0== |
d+0 | 删除至行首 |
==d$== |
D | 删除至行尾 |
| ==d行号gg== | d25gg | 删除到指定行号 |
| d3h | 删除左3字符 | |
| d3l | 右3 | |
| d3j | 下3 | |
| d3k | 上3 |
提示:如果使用 可视模式 已经选中了一段文本,那么无论使用
d还是x,都可以删除选中文本
删除命令可以和 移动命令 连用,以下是常见的组合命令:
dw # 删除后一个单词 db # 删除前一个单词 d0 # 删除到行首 d} # 从光标位置删除到段落结尾 8dd # 从光标位置向下连续删除 8 行 d行号gg # 从光标所在行 删除到 指定代码行 之间的所有代码 d'a # 从光标所在行 删除到 标记a 之间的所有代码
7. 查找字符
| 命令 | 功能 |
|---|---|
==f== |
向前查找字母,跳到字母位置 |
==F== |
向后查找字母 |
fx 向前查找字符 x
8. 替换字符
| 命令 | 英文 | 功能 |
|---|---|---|
==r== |
replace | 替换当前字符 |
==R== |
replace | 替换当前行光标后的所有字符 |
R 命令可以进入 替换模式,替换完成后,按下 ESC 可以回到 命令模式
替换命令 的作用就是不用进入 编辑模式,对文件进行 轻量级的修改
9. 修改内容
| 命令 | 英文 | 功能 |
|---|---|---|
| c | ==change== | |
ch |
修改右边一个字符(删除右边字符,并进入编辑模式) | |
cl |
dli | 修改右边一个字符(删除右边字符,并进入编辑模式) |
==cw== |
dwi | 修改前一个单词(删除前一个单词,并进入编辑模式) |
cb |
dbi | 修改后一个单词(删除后一个单词,并进入编辑模式) |
==c$== |
d$i | 修改到行尾(删除到行尾,并进入编辑模式) |
==cc== |
ddi | 修改整行(删除当前行,并进入编辑模式) |
| ncw | ndwi | 修改指定数目n个单词(删除n个单词,并进入编辑模式) |
| nC | nddi | 修改指定数目的行(删除n行,并进入编辑模式) |
| 删除当前字符,并进入编辑模式 | ||
| 删除当前行,并进入编辑模式 |
10. 撤销/恢复
| 快捷键 | |
|---|---|
==u== |
撤销操作: (undo) |
==Ctrl + r== |
恢复操作: (restore) |
| U | 撤销对该行的所有操作 |
11. 缩进/合并
| 命令 | 功能 |
|---|---|
==>>== |
单行向右增加缩进 |
<< |
单行向左减少缩进 |
==>== |
先可视化v选中行,右缩进 |
| < | 先可视化v选中行,左缩进 |
==.== |
重复上次缩进 |
==J== |
删除行尾的换行符,下一行接上来,合并光标所在行及下一行为一行 |
缩进命令 在开发程序时,统一增加代码的缩进
在 可视模式 下,缩进命令只需要使用 一个 > 或者 <
注销多行代码:
Ctrl + V 选中多行代码,==I== 在选中的行首插入 //
12. 重复上次命令
| 命令 | 功能 |
|---|---|
==.== |
重复上次操作命令 |
格式化代码
格式化代码=自动缩进
| 命令 | 功能 |
|---|---|
==gg=G== |
自动缩进全文,格式化全文 |
====== |
自动缩进当前行 |
查看man
| 命令 | 功能 |
|---|---|
==shift+k== / ==K== |
查看光标所在命令的man手册 |
将光标移动到需要查找帮助的关键字上,按下K,就可以查看光标所在命令的man手册
13. 书签标记
使用 m 增加一个标记,可以在需要时快速地定位跳转回来
标记名称 可以是 a~z 或者 A~Z 之间的任意 一个 字母
添加了标记的 行如果被删除,标记同时被删除
如果 在其他行添加了相同名称的标记,之前添加的标记也会被替换掉
| 命令 | 英文 | 功能 |
|---|---|---|
m[a~Z] |
mark | 添加标记,标记号是 a~z 或 A~Z 之间的任意一个字母 |
| 'a | ‘ | 直接定位到标记 a 所在位置 |
14. 宏
| 命令 | 功能 |
|---|---|
| q[a~Z] | 开始记录当前开始的操作为宏,名称可为[a~Z],然后用q终止录制宏 |
| reg | 显示当前定义的所有的宏,用@[a~Z]来在当前光标处执行宏[a-Z] |
末行模式
进入方式:输入 : 或者 /(表示查找)
退出方式:连按 2 次Esc键
按下Esc,(延迟1s)
删除末行全部输入字符
1. 搜索/查找
| 命令 | 功能 |
|---|---|
==/关键词== |
向下查找==搜索==关键词 |
| ?关键词 | 向上查找关键词 |
查找到指定内容之后,使用n Next查找下一个出现的位置:
n: 查找下一个N: 查找上一个
设置高亮显示搜索 ==:set hls==
关闭高亮显示搜索 ==:set nohls==
如果不想看到高亮显示,可以随便查找一个文件中不存在的内容即可,或者关闭高亮显示搜索:set nohls【no highlight search】
2. *查找当前单词
| 命令 | 功能 |
|---|---|
==*== |
向下查找当前光标所在单词 |
| # | 向前查找当前光标所在单词 |
n: 查找下一个N: 查找上一个
3. 查找并替换
记忆命令格式:
:%s/old/new/gc
| 命令 | 功能 |
|---|---|
| :s/旧文本/新文本 | 选中范围只替换每行第一处文本 |
| :s/旧文本/新文本/g | 选中范围替换,直接替换 |
| :s/旧文本/新文本/gc | 选中范围全部替换,提示确认 |
| ==:2,9s/旧文本/新文本/gc== | 在 2 到 9 行内全部替换(包括端点) |
| :%s/旧文本/新文本 | 整个文档中只替换每行第一处文本 |
| :%s/旧文本/新文本/g | 整个文档全局替换 |
==:%s/旧文本/新文本/gc== |
整个文档==全局==替换,提示确认 |
s (search )搜索
%表示整个文件
g (global)全局(全部)
c (confime)确认
确认提示:
y-yes替换n-no不替换a-all替换所有q-quit退出替换l-last最后一个,并把光标移动到行首^E向下滚屏^Y向上滚屏
全局替换
一次性替换文件中的 所有出现的旧文本
:%s/旧文本/新文本 # 全文只替换每行第一处文本
:%s/旧文本/新文本/g # 全文替换,直接替换
:%s/旧文本/新文本/gc # 全文替换,每次确认
选中域替换
先选中 要替换文字的 范围
:s/旧文本/新文本 # 选中范围只替换每行第一处文本
:s/旧文本/新文本/g # 选中范围替换,直接替换
:s/旧文本/新文本/gc # 选中范围替换,每次确认
:'<,'> 自带开头
指定行内替换
在 2 到 9 行内进行替换(包括端点)
:2,9s/旧文本/新文本/gc # 在2到9行内进行替换(包括端点),直接替换
:2,9s/旧文本/新文本/gc # 在2到9行内进行替换(包括端点),每次确认
确认替换
如果把末尾的 g 改成 gc 在替换的时候,会有提示!推荐使用!
:%s/旧文本/新文本/gc # 全局替换,每次确认
:s/旧文本/新文本/gc # 选中范围替换,每次确认
g global 全局(全部)
c confime 确认
4. 文件操作
| 命令 | 英文 | 功能 |
|---|---|---|
==:n1,n2 write temp.c== |
将n1行到n2行之间的内容写到temp.c文件中 | |
==:write file.c== |
将整个文件的内容写到file.c文件中 | |
==:read file.c== |
将file.c文件的内容插入到当前光标所在行的下面 | |
==:e .== |
edit | 浏览要当前目录下的文件,上下选择,Enter可打开文件 |
| :e filename | 打开filename文件编辑 | |
==:e!== |
放弃修改文件内容,重新载入该文件编辑 | |
| :n 文件名 | new | 新建文件 |
| :w 文件名 | write | 另存为,但是仍然编辑当前文件,并不会切换文件 |
==:files== |
查看当前已经打开的文件名称 | |
| :open 已经打开的文件名 | 切换到已经打开的文件名 |
切换文件之前,必须保证当前这个文件已经被保存!
1. 当前文件
使用vim同时打开多个文件,在末行模式下进行切换文件 查看当前已经打开的文件名称:“:files”
:files # 查看当前已经打开的文件名称在%a的位置有2种显示可能
%a:a=active,表示当前正在打开的文件;#:表示上一个打开的文件2. 切换文件
如果需要指定切换文件的名称,则可以输入:“:open 已经打开的文件名”
:open 已经打开的文件名 # 切换到已经打开的文件名可以通过其他命令来切换上一个文件/下一个文件
:bn # 切换到下一个文件(back next) :bp # 切换到上一个文件(back previous)连按2次
esc键,退出末行模式
5. :X 加密/解密文件
| 命令 | 功能 |
|---|---|
==:X== |
大写X ,两次输入密码,进行加密 |
必须==:wq==保存才能生效(Ctrl+zz不行)
6. 保存退出
| 快捷键 | 功能 |
|---|---|
| :w | 保存(write) |
| :w 路径 | 另存为 |
| :q | 退出(quit) |
==:wq== |
保存并退出 |
==:q!== |
强制退出,不做保存 |
| :x | 保存并退出(文件没有修改则直接退出,文件被修改保存并退出) |
==Shift + zz== |
等价:x保存并退出(文件没有修改则直接退出,文件被修改保存并退出) |
当没有权限修改文件时,无法保存修改
7. 临时调用外部命令:!
==:!外部bash命令==,临时调用外部bash命令
| 快捷键 | 功能 |
|---|---|
==:!外部bash命令== |
临时调用外部bash命令 |
| :!ls | 临时调用外部bash命令ls查看文件目录 |
==:r !外部bash命令== |
将shell命令command的输出结果插入到当前行的下一行 |
| :r !date | 读取系统时间并插入到当前行的下一行 |
| :n1 !command | 将n1行的内容输入到shell命令command处理, 并将处理结果替换n1行之后的内容,修改内容 |
. !tr [a-z][A-Z] |
将当前行的小写转为大写 |
| :n1,n2 !command | 将n1行到n2行之间的内容输入到shell命令command处理, 并将处理结果替换1行到n2行之间的内容 |
| :62,72 !sort | 将62行到72行的内容进行排序,改变当前编辑的文件的内容 |
| :w !command | 将整个文件内容作为command的输入并执行 |
| :n1,n2 w !command | 将n1行到n2行之间的内容作为command的输入并执行, 不会改变当前编辑的文件的内容 |
| :62,72 w !sort | 将62行到72行的内容进行排序, 而不改变当前编辑的文件的内容,而是显示在vim敲命令的区域 |
==:62 w !bash== |
将会把第62行的内容作为bash命令来执行并显示结果,而不改变当前编辑的文件的内容 |
==:. w !bash== |
将当前行的内容作为bash命令来执行 ,而不改变当前编辑的文件的内容 |
==:w !bash== |
将整个文件的内容作为bash命令来执行,而不改变当前编辑的文件的内容 |
r 插入到当前行的下一行 w 不改变当前编辑的文件的内容 . 当前行
:!ls -lah 临时调用外部bash命令
ls查看文件目录:!date 命令行显示日期,不修改 :r !date 插入到下一行 :w !date 命令行显示日期,不修改
:!bash 无法执行当前脚本 :r !bash 无法执行当前脚本 :w !bash 执行当前脚本,不修改
:2 !bash 执行第二行,修改 :2 w !bash 执行第二行,不修改
8. 行操作
| 命令 | 功能 |
|---|---|
| :n1,n2 co n3 | 将n1行到n2行之间的内容拷贝到 n3 行下 |
==:n1,n2 mv n3== |
将n1行到n2行之间的内容移动到 n3 行下 |
==:n1,n2 d== |
将n1行到n2行之间的内容删除 |
若不指定n1,n2,则将整个文件内容作为command的输入
9. 分屏命令
使用分屏命令,可以同时编辑和查看多个文件
| 命令 | 英文 | 功能 |
|---|---|---|
==:sp [文件名]== |
split | 横向增加分屏 |
:vsp [文件名] |
vertical split | 纵向增加分屏 |
==:close== |
关闭当前窗口 |
1) 切换分屏窗口
分屏窗口都是基于
CTRL + W这个快捷键的,w对应的英文单词是window
| 命令 | 英文 | 功能 |
|---|---|---|
Ctrl + w + ==w== |
window | 切换到下一个窗口 |
Ctrl + w + r |
reverse | 互换窗口 |
Ctrl + w + ==c== |
close | 关闭当前窗口,但是不能关闭最后一个窗口 |
Ctrl + w + q |
quit | 退出当前窗口,如果是最后一个窗口,则关闭 vi |
Ctrl + w + o |
other | 关闭其他窗口 |
2) 调整窗口大小
分屏窗口都是基于
CTRL + W这个快捷键的,w对应的英文单词是window
| 命令 | 功能 |
|---|---|
| Ctrl + w + + | 增加窗口高度 |
| Ctrl + w + - | 减少窗口高度 |
| Ctrl + w + > | 增加窗口宽度 |
| Ctrl + w + < | 减少窗口宽度 |
Ctrl + w + = |
等分窗口大小 |
调整窗口宽高的命令可以和数字连用,例如:
5 CTRL + W +连续 5 次增加高度
10. :help帮助命令
:help # 查看整个帮助
:help xxx # 查看xxx帮助
11. vim配置
7. 忽略大小写
:set ignorecase # 忽略大小写查找
:set noignorecase # 区分大小写查找
8. :set hls 高亮搜索结果
:set hls # 高亮搜索结果【highlight search】
:set nohls # 关闭高亮搜索结果
9. :set nu 显示行号
:set nu # 显示行号 number
:set nonu # 不显示行号 no number
10. :syntax 语法着色显示
:syntax on # 显示语法着色 (syntax:语法)
:syntax off # 关闭着色显示
编辑模式
1. 进入编辑模式
i a o I A O 进入编辑模式
Esc 退出编辑模式
在 vi 中除了常用的 i 进入 编辑模式 外,还提供了以下命令同样可以进入编辑模式:
| 命令 | 英文 | 功能 |
|---|---|---|
==i== |
insert | 在当前字符前插入文本 |
==a== |
append | 在当前字符后追加文本 |
==I== |
在行首插入文本 | |
==A== |
在行尾追加文本 | |
==o== |
over | 在当前行下面插入一空行 |
==O== |
在当前行上面插入一空行 |
i(insert)插入,a(append)追加,o(over)空行,小写表示下,大写表示上
2. vim代码提示
| 编辑模式下代码提示 | 功能 |
|---|---|
==Ctrl + n== |
编辑模式下,代码提示 |
3. vim多行注释代码
| 编辑模式下注释代码 | 功能 |
|---|---|
==:normal i #== |
选中区域行首插入 # |
==:normal d #== |
选中区域行首删除 # |
V选中多行代码,同时插入#
4. vim中计算器的使用
在编辑文件的时,可以临时使用计算器。
| 编辑模式下代码提示 | 功能 |
|---|---|
==Ctrl + r + === |
编辑模式下,计算器 |
- 进入编辑模式
- 按下
ctrl + r,然后输入=,此时光标会变到最后一行- 输入需要计算的内容,按下回车
常用命令速查图
vim的配置
Vim是一款编辑器,编辑器也是有配置文件的。 Vim配置有三种情况: a. 在文件打开的时候在末行模式下输入的配置(临时的) b. 个人配置文件~/.vimrc,(如果没有可以自行新建touch ~/.vimrc)家目录下的配置文件优先级更高 c. 全局配置文件(vim自带,/etc/vimrc)
vimrc 是 vim 的配置文件,可以设置 vim 的配置,包括:热键、配色、语法高亮、插件 等
vim ~/.vimrc编辑个人配置文件,在配置文件中进行配置,比如显示行号:set nu,配置好之后vim打开文件就会永远显示行号
~/.vimrc # 个人配置文件(如果没有可以自行新建)
/etc/vim/vimrc # 全局配置文件
" # 显示行号 :set nu
“ # 显示语法着色 :syntax on
” # 高亮搜索结果 :set hlsearch
“ # 忽略大小写查找 :set ignorecase
常用的插件有:
- 代码补全
- 代码折叠
- 搜索
- Git 集成
- ……





