NCEPUwiki NCEPUwiki
首页
分类
  • 常用账号与默认密码
  • 常用网站
  • 常用电话
  • 教室借用
  • 常用公众号
  • 学生组织与社团名单
  • 电动自行车管理
学习资料 (opens new window)
GitHub (opens new window)
首页
分类
  • 常用账号与默认密码
  • 常用网站
  • 常用电话
  • 教室借用
  • 常用公众号
  • 学生组织与社团名单
  • 电动自行车管理
学习资料 (opens new window)
GitHub (opens new window)
  • Python配置
  • VisualStudio安装与卸载
  • Git教程
  • GNU⧸Linux文件系统层级结构
  • ELF文件格式
  • Vim教程
    • Vim打开/关闭/切换/分屏(多个)文件
      • 打开文件
      • 文件切换
      • 分屏显示
      • 移动分屏
      • 切换光标
      • 窗口大小调整
      • 关闭分屏
      • 退出
    • Vim)
      • Vim 正常模式按键的组合规则
      • 从正常模式(Normal-mode)进入插入模式(Insert-mode)
      • 从正常模式(Normal-mode)进入可视模式(Visual-mode)
      • 快速移动光标
      • 在当前行上移动光标
      • 跨行移动光标
      • 翻页操作
      • 删除
      • 复制
      • 粘贴
      • 撤销操作和恢复
      • 删除字符操作和替换
      • 大小写转换
      • 重复操作
      • 快捷搜索
    • Vim)
      • Vim 自动补全
    • Vim)
      • Ex命令
      • 显示行号
      • 关键字的查找
      • 处理文件格式
      • 区分大小写
      • 文本替换
      • 一般形式
      • 作用范围
      • 替换的标志
      • 具体例子
      • Vim与Shell的互动
      • map命令
      • ab命令
    • Vim)
      • 高亮选区操作
      • 文本对象选择
    • Vim寄存器
    • Vim宏录制
      • 宏录制的录制操作
      • 宏录制的使用
      • 旧版本Vim配置文件位置
      • 新版本Vim配置文件位置
      • vimrc编写指南
  • C++环境配置
  • 计算机知识专题
Suikalley
2026-06-08
目录

Vim教程

Vim极速上手

编辑文件最基本流程

步骤 键盘输入
1.打开文件 vim <文件名>
2.进入插入模式 i
3.输入文本
4.保存退出 :wq

3种模式

模式 能做什么 如何进入
正常模式 移动,删除,复制,粘贴 Esc(从任何模式返回)
插入模式 输入文本 i(光标前插入)
命令模式 保存,退出,查找 普通模式下输入冒号:

救命3招

情况 操作 说明
想退出但不会 Esc→:q! →回车 强制退出,不保存
想保存并退出 Esc→ :wq→回车 保存后退出
什么都不懂时 狂按Esc 确保回到正常模式

撤销:u (正常模式下)

重做:Ctrl + r(正常模式下)

参考资料

**官方仓库:**​https://github.com/vim/vim.git (opens new window)

**官方网站:**​https://www.vim.org/ (opens new window)

参考书籍:

  • 《Practical Vim: Edit Text at the Speed of Thought》 (英文原版)
  • 《Vim实用技巧》 (中译版)

Vim 的帮助文档 : 终端输入vim,敲击回车键(enter),进入Vim,然后键盘上输入

  • :h[elp] (获取帮助系统的相关信息以及在不同的主题之间切换。)
  • :h[elp] subject (subject可以是命令,配置选项,热键绑定,插件等)

Vim交互式教程

  • vimtutor (终端输入)

  • :h[elp] vimtutor (进入vim后输入)

Vim配套工具

  • vimdiff (直观地比较和合并两个/多个文件)

命令行编辑器发展史

ed:Unix操作系统之父Ken Thompson最早开发的行编辑器(1969),甚至没有可视化界面,不能直接修改屏幕上的文字,而是通过命令来操作每一行,是Unix世界里第一个文本编辑工具

em:George Coulouris博士为ed增加了实时编辑功能,让用户能看到当前正在编辑的行,并将其命名为em(for Editor for Mortals,意为凡人的编辑器)

vi:加州大学伯克利分校研究生Bill Joy在ex中增加一个可视化界面(vi,Visual Interface),让用户可以直接在全屏模式下编辑文件,vi最早作为ex的可视化模式出现,并在1979年发布的BSD 2.0版中,被作为独立的编辑器对外发布

vim:荷兰程序员Bram Moolenaar发起,成为Vi的升级版(vim,Vi IMproved)

Vim的优势

  • 纯键盘操作,纯命令行界面(服务器标配、命令行界面首选)

  • 在高性能计算,嵌入式开发,云计算的领域,执行代码的机器本身没有图形界面,初始编辑器只有vi/vim

  • Vim是最流行的文本编辑软件之一,有"编辑器之神"的美誉

  • 社区活跃,插件丰富,生态优秀

  • 许多IDE都支持VIM模式(如VSCode,JetBrains)

  • 高效的移动,高效的编辑,高效的批量操作

Vim模式简介

正常模式(Normal-mode)

大多数文本编辑器的设计模型是"打字机模型" :打开编辑器后,光标闪烁,你直接输入字符,字符出现在光标位置。在这种模型中,编辑 = 输入文本,用户几乎一直处于“插入文字”的状态。修改、删除、复制等操作通常需要借助鼠标菜单、快捷键或功能键。

与其他文本编辑器大部分时间都处于类似Vim插入模式的状态中不同,进入Vim的默认模式是正常模式(Normal-mode) ,Vim用户使用最频繁、停留最久的也是普通模式。有些奇怪不是吗?用《Vim实用技巧》中的话来说是​ “停顿时请离开画笔”

正常模式的本质上是一个命令解释器:每个按键(及按键组合)执行一个特定的编辑/移动/操作命令。正常模式的强大源于按键之间的组合。

插入模式(Insert-mode)

在正常模式中按下 i,I,a,A,o,O,s,S,c,C 进入插入模式。任何时刻按切回正常模式。

该模式启动以后,就会进入编辑状态,通过键盘输入内容。

命令模式(Command-mode)

在正常模式中按下 : 或 / 进入命令模式。任何时刻按切回正常模式。

在命令模式中可以输入并执行一些 Vim 或插件提供的指令,就像在shell里一样。可以执行文件保存、退出、查找替换、设置选项、窗口管理等复杂操作。

可视模式(Visual-mode)

在正常模式中按下 v 或 V 或 Ctrl+V 进入可视模式。任何时刻按切回正常模式。

Vim的可视模式允许我们选中一块文本区域并在其上进行操作,与其他编辑器的鼠标拖拽选中是相同的功能意图。Vim实际上是用纯键盘操作实现普通编辑器的鼠标拖拽选中编辑功能

Vim打开/关闭/切换/分屏(多个)文件

打开文件

多个文件 file1 ,file2 , ... ,filen.

# 举例:打开单个文件
vim file1
# 举例:打开两个文件 file1,file2
vim file1 file2
# 显示屏默认显示第一个文件也就是 file1
1
2
3
4
5

文件切换

:ls
列出 VIM 打开的所有文件。

:bn
切换到第n个文件
如:b1代表切换到第一个文件,:b2代表切换到第二个文件

分屏显示

打开文件同时分屏显示

VIM 可以实现分屏操作,一个屏幕被多个文件给分占,有左右和上下两种分屏的方式。

vim -On file1  file2  ...  filen		//左右分屏
1

这里的 n ( n 是要打开的具体文件的数目:1,2,3 ...)代表有几个文件需要分屏,从左至右依次显示 n 个文件。

vim -on file1 file2 ... filen		//上下分屏
1

这个命令跟上一个命令不同的是其中的参数 -on( n 是要打开的具体文件的数目:1,2,3 ...) 中的 o 是小写,这样将会上下依次显示 n 个文件。

快捷键分屏操作

请记住一个重要的组合键 Ctrl + w ,操作分屏离不开这个组合键(这里的组合键可没有 + ,只是 Ctrl 和 w 组合实现一个功能,下文谈到的组合健都这样描述 )。

Ctrl+w s
上下分割当前打开的文件。

:sp[lit] file
上下分割当前文件和file文件

Ctrl+w v
左右分割当前打开的文件

:vs[plit] file
左右分割当前文件和file文件

移动分屏

Ctrl+w H
将当前的分屏移动到左边

Ctrl+w J
将当前的分屏移动到下面的分屏

Ctrl+w L
将当前的分屏移动到右边

Ctrl+w K
将当前的分屏移动到上面的分屏

切换光标

Ctrl+w h
将当前光标定位到左边的屏幕

Ctrl+w j
将当前的光标移动到下面的分屏

Ctrl+w l
将当前的光标定位到右边的屏幕

Ctrl+w k
将当前光标移动到上面的分屏

Ctrl-w w
在窗口间按顺序循环切换

窗口大小调整

操作 命令 快捷键 备注
增加N行当前窗口高度 :resize +N Ctrl-W + 快捷键仅能增加一行
减少N行当前窗口高度 :resize -N Ctrl-W - 快捷键仅能减少一行
设置当前窗口高度为N行 :resize N 无
均衡所有窗口高度/宽度 :wincmd = Ctrl-W =
最大化当前窗口高度 :resize Ctrl-W _
最大化当前窗口宽度 :vertical resize Ctrl-W |

关闭分屏

Ctrl+w c
:close
关闭当前的分屏,如果是最后一个分屏则无法关闭

Ctrl+w q
:q[uit]
关闭当前的分屏,如果是最后一个分屏将会退出VIM

Ctrl+w o
:only
关闭所有其他窗口,让当前窗口全屏

退出

:w
保存当前对文件的修改,但是不退出文件。

:w!
强制保存但是不退出文件。

:w file
保存当前的文件修改到 file 文件当中。

:q!
退出文件,对文件的修改不做保存。

:qa!
退出所有的文件,对所有的文件修改都不做保存。

:wq
退出文件并保存对文件的修改

:x
退出文件并保存对文件的修改。

:e file
打开另一个文件。

:e!
放弃对文件的所有修改,恢复文件到上次保存的位置。

:saveas file
另存为 file。

:bn 和 :bp
当打开多个文件的时候可以输入 :bn 和 :bp 进行上一个文件或者下一个文件的切换。

以上的命令都是在命令行模式下的操作(也就是输入冒号 :紧接着输入相应的字符命令如 :q! 就会执行退出操作)。 zempty 在这里要推荐一个常用的操作就是 ZZ , 当你对文件进行了修改,需要保存退出,那么可以在键盘上快速的键入两个大写的 Z (ZZ),这样文件就会快速的保存退出了 。


Vim正常模式(Normal-mode)

在使用 Vim 打开文件的时候,默认状态是正常模式(Normal-mode)

请务必记住这个模式,如果你不确定当前是否处在正常模式,请狂按,必然可以回到默认模式。

高效使用 Vim 的技巧是在正常模式中“思考”和“指令”,快速切换到其他模式执行具体动作,完成后立即返回正常模式,避免长时间停留在插入模式。

Vim 正常模式按键的组合规则

Vim 正常模式按键组合一套类似自然语言的语法

​ ​[数字] 动词 [名词]​

  • 数字:重复执行动词的次数

  • 动词:表示要执行的动作

  • 名词:表示动作作用的对象

这种设计让原本需要记忆大量快捷键的操作,变成了可组合、可推理的命令。只要掌握十几条基础动词和名词,其他都可类推。

常见动词

  • i=insert(插入)

  • a=append(追加)

  • s=substitute(替换)

  • p=paste(粘贴)

  • d=delete(删除)

常用功能如下↓↓↓

从正常模式(Normal-mode)进入插入模式(Insert-mode)

VIM 处理编辑文本需要从正常模式(Normal-mode)切换到插入模式(Insert-mode),进入插入模式的时候你会在屏幕底部看到-- INSERT --的提示,这时候就可以编辑文本了。

请记住下面几个常用启动录入文本的键盘字符 i,I,a,A,o,O,s,S 。

i 在光标所在的字符之前插入需要录入的文本。

I 在光标所在行的行首插入需要录入的文本。

a 在光标所在的字符之后插入需要录入的文本。

A 在光标所在行的行尾插入需要录入的文本。

o 光标所在行的下一行行首插入需要录入的文本。

O 光标所在行的上一行行首插入需要录入的文本。

s 删除光标所在处的字符然后插入需要录入的文本。

S 删除光标所在行,在当前行的行首开始插入需要录入的文本。

‍

cw 删除从光标处开始到该单词结束的所有字符,然后插入需要录入的文本

从正常模式(Normal-mode)进入可视模式(Visual-mode)

快捷键v,V,Ctrl+v

v 字符可视化
按下键盘上的v以后,屏幕底部有 VISUAl 提示,操作 h,j,k,l 选中文本,继续按 v 退出可视化模式。

V 行可视化
按下键盘上的V以后,屏幕底部有 VISUAL LINE 提示,操作 j,k 可以向上或者向下以行为单位选中文本,继续按下 V 退出可视化模式。

Ctrl+v 块状可视化
按下键盘上的Ctrl+v以后,屏幕底部有 VISUAL BLOCK 提示,可以通过 h,j,k,l 块状的操作选择区域,继续按下 Ctrl+v 会退出可视化模式。

快速移动光标

h 向左移动光标

l 向右移动光标

j 向下移动光标

k 是向上移动光标

h , j , k ,l 在主键盘区完全可以取代键盘上的 ↑ ,↓ ,← , → 的功能。

在当前行上移动光标

0 移动到行首(第一个字符)

$ 移动到行尾

^ 移动到行首(非空白,第一个不是 blank 字符的位置)

g_ 移动到行尾(非空白,最后一个不是 blank 字符的位置)

w/W 光标移动到下一个单词的开头

e/E 光标移动到下一个单词的结尾

fβ 移动到本行下一个为 β 的字符处
Fβ 移动到本行上一个为 β 的字符处

nfβ 移动到本行光标处开始的第 n 个字符为 β 的地方
nFβ 与 nfβ 类似,光标移动方向同 nfβ相反

tβ 移动光标至 β 字符的前一个字符
Tβ 同 tx 移动光标方向相反

ntx 移动到第二个 a 字符的前一个字符处
nTx 同 nta 移动光标方向相反

使用 f, F, t ,T, 关键字指定字符跳转的时候
; 快速跳转到下一个指定的字符
, 是跳到前一个指定的字符

跨行移动光标

nG 光标定位到第 n 行的行首

gg 光标定位到第一行的行首(等同于Homw键)

G 光标定位到最后一行的行首(等同于End键)

H 光标定位到当前屏幕的第一行行首

M 光标移动到当前屏幕的中间

L 光标移动到当前屏幕的尾部

zt 把当前行移动到当前屏幕的最上方,也就是第一行

zz 把当前行移动到当前屏幕的中间

zb 把当前行移动到当前屏幕的尾部

% 匹配括号移动,包括 ( , { , [ 需要把光标先移动到括号上
和 # 匹配光标当前所在的单词,移动光标到下一个(或者上一个)匹配的单词( * 是下一个,# 是上一个)

翻页操作

ctrl+u 向上翻半页 //up
ctrl+b 向上翻一页 (等同于PageUp键) //back

ctrl+d 向下翻半页 //down
ctrl+f 向下翻一页 (等同于PageDown键)//forward

删除

d=delete是删除的意思,通常搭配一个字符 ( 删除范围 ) 实现删除功能,常用的如下:

dw 删除一个单词

dnw 删除 n 个单词,

dfa 删除光标处到下一个 a 的字符处( fa 定位光标到 a 处 )

dnfa 删除光标处到第 n 个 a 的字符处

dd 删除一整行

ndd 删除光标处开始的 n 行

d$ 删除光标到本行的结尾

dH 删除屏幕显示的第一行文本到光标所在的行

dG 删除光标所在行到文本的结束

复制

y= 是复制的意思,通常搭配一个字符(复制范围)实现复制的功能,常用的如下:

yw 复制一个单词

ynw 复制 n 个单词

yfa 复制光标到下一个 a 的字符处

ynfa 复制光标处到第 n 个 a 的字符处

yy 复制一行

nyy 复制光标处开始的 n 行

y$ 复制光标到本号的结尾

yH 复制屏幕显示的第一行文本到光标所在的行

yG 复制光标所在行到文本的结束

粘贴

p=paste 是黏贴的意思,当执行完复制或者黏贴的命令以后,VIM 会把文本寄存起来。

p 在光标后开始黏贴

P 大写的 P 光标前开始粘贴

撤销操作和恢复

u 撤销刚才的操作

ctrl + r 恢复撤销操作

删除字符操作和替换

x 删除光标当前所在的字符

r 替换掉光标当前所在的字符

R 替换掉从光标开始以后的所有字符,除非 退出

大小写转换

~ 将光标下的字母改变大小写

3~ 将光标位置开始的3个字母改变其大小写

g~~ 改变当前行字母的大小写

gUU 将当前行的字母改成大写

guu 将当前行的字母全改成小写

3gUU 将从光标开始到下面3行字母改成大写

gUw 将光标下的单词改成大写。

guw 将光标下的单词改成小写

重复操作

. 重复上一次操作(某种程度上和宏类似)

n 重复某个命令 n 次

  • 10p 复制10次
  • 3dd 删除4行

和其他Vim操作联动举例

  • 待补充

快捷搜索

命令 功能 说明
***** 正向搜索光标下的单词 跳转到光标所在单词的下一个匹配项
# 反向搜索光标下的单词 跳转到光标所在单词的上一个匹配项
n 重复上一次搜索 按*​或#​后,按n键会沿相同方向继续查找下一个匹配项
N 反向重复上一次搜索 按*​或#​后,按N键会沿相反方向查找匹配项
g* /g# 部分匹配搜索 忽略单词边界,进行部分匹配

说明(以光标下单词为foo举例)

  • *和# 完整匹配单词(只匹配单词foo)
  • g*和g# 部分匹配单词(匹配所有包含foo的位置,如foo,foobar,barfoo,foo123)

Vim插入模式(Insert-mode)

Vim 自动补全

快捷键 Ctrl+n 或者 Ctrl+p 会有代码提示功能,我们可以实现快速录入的效果。


Vim命令行模式(Command-mode)

Ex命令

Ex命令:按下:进入命令行模式输入的指令,它们源于 ed 和 ex 编辑器,因此被称为Ex命令

特点

  • 可以指定行范围,作用于多行
  • 可以反复执行、组合、写入脚本。
  • 支持自动补全(按Tab键)
  • 很多命令有短名(如 :w 代替 :write)

Ex 命令的基本语法

:[range] [command] [args]

  • [range]:指定命令作用哪些行(可选,默认当前行)。待补充:常用范围表
  • [command]:Ex 命令名
  • [args]:命令的参数(文件名、替换模式、标志等)。

例子

  • :n1,n2d

    n1 和 n2 指的是起始行号和结束行号,d 是删除关键字

显示行号

注:文本的行号设置最好不要设置在配置文件中(因为复制文件的时候行号的出现会很麻烦),在命令行实现就好。

:set nu

该命令会显示行号。

:set nonu

该命令会取消行号。

:n

定位到 n 行。

关键字的查找

/{目标字符串}

如:/zempty 会在文本中匹配 zempty 的地方高亮。

查找文本中匹配的目标字符串,查到以后,输入键盘上的 n 会去寻找下一个匹配,N 会去寻找上一个匹配。

处理文件格式

:set fileformat?

通常显示为 unix、dos 或 mac

注:使用 Vim 打开文件时行尾出现 ^M,是因为该文件包含 Windows 风格的换行符(CRLF,即 \r\n),而 Vim 在 Unix/Linux 环境下默认使用 Unix 风格的换行符(LF,即 \n)。Vim 会将不可见的回车符(CR,ASCII 13)显示为 ^M。

:e ++ff=dos

希望保留 Windows 格式,强制以 dos 格式打开的解决方法

:set fileformat=unix

强制转换为 Unix 格式,将\r\n换行符替换为\n

区分大小写

:set ic

编辑器将不会区分大小写,如果你进行该设置之后,进行关键字查询如 /zempty 如果文本中有 Zempty ,zEmpty,....,只要是字符相同不会区分大小写都会进行匹配。

:set noic

该命令用来区分大小写的查询。

文本替换

前身是ed/ex的行编辑器命令

一般形式

:{作用范围}s/{目标}/{替换}/{替换的标志}

作用范围

类型

  • 当前行 {作用范围}留空不填写

  • 全文 {作用范围}填写 %

  • 选区: 在可视模式下选择区域后输入 : ,VIM 会自动补全为 :'<,'>

这个操作是可视模式(Visual-mode)下选区中的替换操作

可视模式下输入:会自动补全为 :'<,'> 表明操作范围是可视范围下的选中高亮的部分

​:'<,'>s/zempty/handsome/g

替换的标志

g 表示全局 global 替换(即替换目标的所有出现)

i 表示大小写不敏感查找,I 表示大小写敏感:

空替换标志表示只替换从光标位置开始,目标的第一次出现

具体例子

  • 😒/zempty/handsome/g
    将会把当前光标所在行的所有zempty 替换成 handsome

  • :%s/zempty/handsome/g
    将会把全文中所有zempty 替换成 handsome

  • :n1,n2s/zempty/handsome/g
    这里的 n1 和 n2 指的是行号,将会替换掉 n1 到 n2 的所有 zempty 为 handsome

  • 😒/zempty/handsome
    作用于当前行,从光标处开始查找替换,仅仅替换第一次匹配 zempty 的地方为handsome

  • :%s/zempty/handsome
    替换掉文件中所有行第一次出现 zempty 的地方为 handsome

  • :%s/zempty/handsome/i
    替换掉所有行第一个出现 zempty (不区分大小写) 为 handsome

  • :%s/zempty/handsome/gi
    替换掉所有行出现 zempty (不区分大小写) 为 handsome

  • :%s/zempty/handsome/gc
    c 表示需要确认,全局查找"zempty"替换为"handsome"并且需要确认

Vim与Shell的互动

:!command

执行单条命令,屏幕会暂时被命令输出占据,按Enter键返回到你正在编辑的文件中

  • :!date
    执行date命令显示时间

  • :!pwd
    查看当前工作目录

:r !command

执行命令,并将输出添加至光标处

  • :r !date
    执行 date 命令显示时间,并且添加命令结果到文本中。

:shell

临时启动一个Shell,暂时退出 Vim 进入系统终端,输入 exit 并回车,就能返回 Vim

小技巧:

  • 正常模式下按Ctrl+Z, Vim 进程会被挂起放到后台,返回到启动Vim时的Shell
  • Shell中输入fg ,将 Vim 调回前台,继续编辑

map命令

功能:将键盘序列映射为另一个序列或命令 (自定义快捷键)

定义快捷键的一般形式

:map {按键组合} {按下快捷键要执行的操作}

举例说明

  • :map I#
    按下Enter键会在文件光标处所在行的行首插入 #

    • {按键组合}的解释:表示回车

    • {按下快捷键要执行的操作}的解释: I是切换光标至行首并切换到编辑模式,#是行首输入的内容,是按Esc退出编辑模式

查看当前映射

:map 列出所有模式下的普通映射

待补充:nnoremap,vnoremap,inoremap及好用示例

ab命令

待补充


Vim可视模式(Visual-mode)

可视模式有三种形态,对应不同的选择粒度

中文名 英文名 从正常模式进入按键 界面左下角显示
字符可视模式 Characterwise Visual Mode v ​--VISUAL--
行可视模式 Linewise Visual Mode V ​--VISUAL LINE--
块可视模式 Blockwise Visual Mode Ctrl+v ​--VISUAL BLOCK--

高亮选区操作

可视化模式下选择操作区域以后

  • 按下 d 删除选择的区域

  • 按下 y 复制选择的区域

  • 按下 p 粘贴选择的区域

gv 正常模式下重选上一次的选区

文本对象选择

当操作的文本光标在 "" , '' , () , {} , [] 当中的时候,可以通过va,vi快速选择区域,a/i后面会紧跟一个区域结束标志,a(around)会选中结束符标志,i(inner)不选中

其中v用于进入可视模式

  • v a" 选中 "" 内的所有内容,包括""

  • v i" 选中 "" 内的所有内容,不包括""

例子
"hello world [VIM is so strong],{we all can master vim skill}"
假设当前处于正常模式,光标定位在上面的文本 M 处:

  • va] 操作将会选中以下文本(加粗部分)
    "hello world [VIM is so strong] ,{we all can master vim skill}"

  • vi] 操作将会选中如下的区域(加粗部分)
    "hello world [VIM is so strong],{we all can master vim skill}"

  • vi" 操作将会选中如下的区域(加粗部分)

    "hello world [VIM is so strong],{we all can master vim skill} "


Vim寄存器

待补充

Vim宏录制

使用宏录制可以一次执行一系列的操作,通常针对一些重复度较高的操作进行宏录制。

宏(Macro):记录的一系列按键操作,然后通过一次回放重复执行这些操作

宏录制的录制操作

例子:假设需要操作的文本如下,需要将如下文本的每一行的行首插入入一个 tab 键。

hello
hello world
hello world , vim
1
2
3

在普通模式下按下 q 键(q键启动宏录制),再按一个 a (任意一个小写字母,表示该宏保存在寄存器a中),按下 I 在行首插入一个 tab 键,按下退出编辑模式,按下 j 将光标移动到下一行行首,最后按下 q 键完成录制操作(再按q键结束宏录制)

上面例子的操作流程:q → a → I → tab → → j → q

宏录制的使用

在正常模式下,类比下面组合按键

@a 执行保存在寄存器a中的宏录制的一系列动作(这个例子中将会在第二行插入tab)

@@ 执行上一次使用的宏录制

n@a 执行n次寄存器a中的宏录制


配置文件

:version
查看版本,插件,编译时间,配置文件位置

:echo $VIM
:echo $VIMRUNTIME
查看变量

:scriptnames
查看当前加载了哪些配置

旧版本Vim配置文件位置

文件位置 文件类型 文件功能
/etc/vimrc 系统级配置文件
$HOME/.vimrc 用户级配置文件 优先级:1
/.vim/vimrc 用户级配置文件 优先级:2
/.config/vim/vimrc 用户级配置文件 优先级:3
$HOME/.exrc vi编辑器配置文件 优先级:4
$VIMRUNTIME
/usr/share/vim/vim90/
最后的数字 90 代表 Vim 9.0 版本
系统级配置目录 Vim 运行时目录
语法高亮文件 (syntax/):决定了不同编程语言(如 Python、JavaScript)的代码如何着色。
帮助文档 (doc/):你在 Vim 中输入 :help 看到的所有文档都来自这里。
文件类型插件 (ftplugin/):根据你编辑的文件类型(如 .c 文件、.txt 文件)自动进行特定设置的脚本。
配色方案 (colors/):Vim 自带的各种颜色主题。
默认配置文件 (defaults.vim):为用户提供一组合理的默认设置
$VIM
/usr/share/vim
~/.viminfo 操作历史文件

新版本Vim配置文件位置

Vim 9.2.0 版本,引入了对 XDG 基础目录规范的部分支持(仅配置目录$XDG_CONFIG_HOME)

文件位置 文件位置(XDG变量表示) 文件类型 文件功能
/etc/vimrc 系统级配置文件
/usr/share/vim/ 系统级配置目录 插件
~/.config/vim/vimrc $XDG_CONFIG_HOME/vim/vimrc 用户级配置文件
~/.config/vim/ $XDG_CONFIG_HOME/vim/ 用户级配置目录 插件
~/.config/vim/gvimrc $XDG_CONFIG_HOME/vim/gvimrc 图形界面配置
~/.local/share/vim/viminfo $XDG_DATA_HOME/vim/viminfo 操作历史文件

vimrc编写指南

注释:以 " 开头的行为注释。

设置选项:使用 set 命令,例如 set number 开启行号。

映射键位:使用 map 系列命令,如 map w :w 将 +w 映射为保存文件。

变量:可用 let 定义变量,如 let mapleader = "," 设置前导键为逗号。

" 这是一个注释行,以双引号开头

" 开启语法高亮
syntax on

" 显示行号
set number

" 高亮当前行
set cursorline

" 总是显示状态栏
set laststatus=2

" 设置搜索时忽略大小写
set ignorecase
" 除非搜索内容包含大写字母
set smartcase

" 设置Tab键和缩进
set tabstop=4       " Tab显示为4个空格
set shiftwidth=4    " 自动缩进为4个空格
set expandtab       " 将Tab自动转换成空格

" 设置 jk 为退出插入模式的快捷键
inoremap jk <Esc>

" 使用插件管理器 (这里以 vim-plug 为例)
call plug#begin('~/.vim/plugged')
  Plug 'preservim/nerdtree'   " 文件树插件
  Plug 'morhetz/gruvbox'      " 一个流行的配色主题
call plug#end()

" 设置配色方案
colorscheme gruvbox
set background=dark " 使用暗色背景
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#Linux
上次更新: 2026/06/09, 12:07:42
ELF文件格式
C++环境配置

← ELF文件格式 C++环境配置→

最近更新
01
北京校区学习资料
07-22
02
信息与计算科学专业求生指南(持续更新)
07-08
03
C++环境配置
07-07
更多文章>
Theme by Vdoing | Copyright © 2025-2026 NCEPUwiki-Group | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式