「Linux 系统编程」Vim 的安装及基本操作

0 Vim 的安装和配置

vi 编辑器是所有 Linux 系统的标准编辑器,而 Vim 是从 vi 发展出来的一个文本编辑器,具有代码补全、编译及错误跳转等方便编程的功能。

Vim 的安装命令

1
2
3
4
sudo apt install vim

# 验证安装,查看安装 vim 版本
vim --version


创建一个配置文件 ~/.vimrc,以下是我在文件中添加的 Vim 基础配置:

1
2
3
4
5
6
set nu          " 显示行号 
set tabstop=4 " Tab 宽度为 4 个空格
set nobackup " 不需要备份文件
set ruler " 底部显示光标所在位置
set autoindent " 自动缩进
set showmatch " 括号匹配高亮

/etc/vim/vimrc 是 Vim 的全局配置文件,适用于所有用户,可以在其中设置 Vim 的默认行为和功能。~/.vimrc 用于保存 个人用户自定义 的启动设置、插件加载方式、界面优化选项等,比 /etc/vim/vimrc 优先级更高。

用 vim 打开 ~/.vimrc 文件查看或修改配置:



1 Vim 的工作模式

1.1 Vim 的三种核心工作模式

  • 命令模式 (Command Mode):

    启动后的默认模式,用于 导航(h/j/k/l 移动光标)和 命令(例如进行 d 删除、y 复制、p 粘贴等文本操作)。


  • 插入模式 (Insert Mode):

    在命令模式下,按 i 进入插入模式,可自由编辑文本。还有其他常用的进入插入模式的命令:

    1
    2
    3
    4
    5
    6
    7
    8
    i  " 光标前插入    
    I " 行首插入
    a " 光标后插入
    A " 行末插入
    o " 下行插入
    O " 上行插入
    s " 删字符插入
    S " 删行插入


  • 命令行模式 (Command-Line Mode):

    : 输入命令。常用的操作包括:

    • 文件操作:w 保存,:q 退出,:wq 保存并退出,:q! 强制退出。
    • 搜索替换:%s/待替换内容/替换内容/g 全局替换;:s/待替换内容/替换内容/g 替换光标所在单行中所有待替换内容;:22,33s/待替换内容/替换内容/g 替换第 22 - 33 行之间所有待替换内容。
    • 配置管理:set number
    • 插件命令:PlugInstall



1.2 Vim 三种核心工作模式的关系

图片来源:https://www.runoob.com/linux/linux-vim.html



1.3 Vim 的可视模式

v 进入 可视模式 (Visual Mode),主要用于文本范围选择。通过光标起始位置 + hjkl 移动可以选择文本。后续可以对选择的文本删除(剪切)、复制粘贴等操作。

可视模式 还包含 行可视模式(V 进入)、块可视模式(Ctrl + v 进入)。



2 Vim 的跳转和删除操作

2.1 光标跳转

  • 0 跳转到行首
  • $ 跳转到行尾
  • gg 跳转到文件的首行
  • G 跳转到文件的末行
  • 233G 跳转到文件的第 23 行(也可以命令行模式下通过 :233 跳转)
  • % 配对的括号之间跳转

2.2 精准删除

  • x 删除光标处的 1 个字符
  • dw 删除 1 个单词(光标需要单词首位)
  • d0 删至行首
  • d$D 删至行尾
  • dd 删除整行
  • 7dd 删除光标所在行及以下共 7 行
  • r 替换光标选中的字符,再按下替换字符对应按键替换为目标字符(也可以命令行模式下通过 :s/old/new 将当前行首个 old 替换为 new)

2.3 删除指定区域

光标选中要删除的首字符,按 v 进入可视模式,再使用 hjkl 移动到要删除的末尾,按 d 删除。



3 Vim 的复制粘贴操作

3.1 精准复制粘贴

  • y 复制光标所在字符
  • yy 复制光标所在行
  • 7yy 复制光标所在行及以下共 7 行
  • p 在光标后粘贴(整行则粘贴到下一行)
  • P 在光标前粘贴(整行则粘贴到上一行)

3.2 复制指定区域

光标选中要删除的首字符,按 v 进入可视模式,再使用 hjkl 移动到要删除的末尾,按 y 复制指定区域。

3.3 复制和删除的关系

Vim 的跳转和删除操作 中涉及的删除操作其实都是 剪切,删除的内容都会进入剪切板,可用 p/P 粘贴。



4 Vim 的查找和替换操作

4.1 查找(命令模式)

1
2
3
4
/pattern↲  # 查找pattern
n # 跳下一个匹配
N # 跳上一个匹配
* # 查找光标处的单词(无需在词首)

4.2 替换(末行模式)

1
2
3
4
:%s/old/new/g     # 全局替换
:10,20s/old/new/g # 替换10-20
:s/old/new/g # 替换当前行
:set ic # 查找时忽略大小写


5 Vim 的其他操作

  1. 撤销与重做
1
2
u       # 撤销
Ctrl-r # 反撤销
  1. 分屏操作
1
2
3
4
5
:sp         # 水平分屏
:vsp # 垂直分屏
:sp file.c # 分屏打开文件
Ctrl-w-w # 切换窗口
:qall # 关闭所有窗口
  1. 集成系统工具
1
2
3
4
K         # 查看man手册(光标在单词上)
3K # 查看man手册第3
[d # 查看宏定义
:!ls -l # 执行shell命令(按↲返回)
  1. 自动排版

v 进入可视模式,然后选中代码区域,按下 = 可以自动排版指定区域。

1
gg=G      # 全局自动缩进

「Linux 系统编程」Vim 的安装及基本操作
https://marisamagic.github.io/2025/08/09/20250809/
作者
MarisaMagic
发布于
2025年8月9日
许可协议