vim基础操作

Linux 编辑器 Vim 核心概念与基础操作指南

在 Linux 系统的文本编辑生态中,Vim 无疑是最具代表性的工具之一。作为经典的 vi 编辑器的升级版本,Vim 不仅完美兼容了 vi 的所有指令,还引入了语法高亮、可视化操作等现代特性。它打破了终端环境的局限,能够流畅运行于 X Window、macOS 以及 Windows 等多种操作系统之上,成为了跨平台开发者的得力助手。

Vim 最核心的设计理念在于其独特的多模式编辑机制。虽然 Vim 内部包含了 12 种模式(6 种基础模式与 6 种附加模式),但在日常使用中,用户只需熟练掌握三种核心模式即可应对绝大多数编辑需求。

1. 正常/普通/命令模式 (Normal Mode)

  • 核心功能
    • 控制屏幕光标的移动。
    • 执行字符、字或行的删除操作。
    • 移动、复制某区段的文本。
  • 模式切换
    • 可由此模式进入 Insert mode(插入模式)。
    • 可由此模式进入 last line mode(末行模式)。

2. 插入模式 (Insert Mode)

  • 核心功能
    • 只有在 Insert mode 下,才可以进行文字输入。
    • 这是后续日常使用中最频繁的编辑模式。
  • 退出方式
    • ESC 键可退回到命令模式 (Normal Mode)。

3. 末行模式 (Last Line Mode)

  • 核心功能
    • 文件的保存或退出。
    • 进行文件内容替换、查找字符串。
    • 列出/设置行号等高级操作。
  • 进入方式
    • 在命令模式下,按 Shift + : (即输入冒号 :)即可进入该模式。

要查看你的所有模式及详细说明,可以在打开 Vim 后,在末行模式下直接输入以下命令:

vim 复制代码
:help vim-modes

Vim 基本操作

进入 Vim

在系统提示符后输入以下命令进入 Vim 全屏幕编辑界面:

bash 复制代码
$ vim test.c

注意 :进入 Vim 后,默认处于 正常模式 ,需要切换到 插入模式 才能输入文字。


模式切换

正常模式 → 插入模式

命令 说明
a 在光标当前位置的下一个位置开始输入
i 在光标当前位置开始输入
o 插入新的一行,从行首开始输入

插入模式 → 正常模式

  • ESC

正常模式 → 末行模式

  • 输入 : (Shift + ;)

退出与保存(末行模式)

命令 说明
:w 保存当前文件
:wq 存盘并退出 Vim
:q! 不存盘强制退出 Vim

正常模式命令集

光标移动

命令 说明
h / j / k / l 左 / 下 / 上 / 右 移动一格
G 移动到文章末尾
$ 移动到光标所在行的行尾
^ 移动到光标所在行的行首
w 光标跳到下一个字的开头
e 光标跳到下一个字的字尾
b 光标回到上一个字的开头
#l 光标移到该行的第 # 个位置(如 5l56l
gg 移动到文本开始
shift + g 移动到文本末端
ctrl + b 屏幕往后移动一页
ctrl + f 屏幕往前移动一页
ctrl + u 屏幕往后移动半页
ctrl + d 屏幕往前移动半页

删除文字

命令 说明
x 删除光标所在位置的一个字符
#x 删除光标所在位置后面(包含自己) # 个字符(如 6x
X 删除光标所在位置的前面一个字符
#X 删除光标所在位置的前面 # 个字符(如 20X
dd 删除光标所在行
#dd 从光标所在行开始删除 # 行

复制与粘贴

命令 说明
yw 复制光标所在位置到字尾的字符到缓冲区
#yw 复制 # 个字到缓冲区
yy 复制光标所在行到缓冲区
#yy 复制从光标所在行往下数 # 行(如 6yy
p 将缓冲区内容粘贴到光标所在位置

替换

命令 说明
r 替换光标所在处的字符
R 连续替换光标所到之处的字符,直到按 ESC 结束

撤销与恢复

命令 说明
u 撤销上一次操作(可多次按)
ctrl + r 恢复被撤销的操作

更改

命令 说明
cw 更改光标所在处到字尾的内容
c#w 更改 # 个字(如 c3w

跳转至指定行

命令 说明
ctrl + g 列出光标所在行的行号
#G 移动光标至文章的第 # 行行首(如 15G

末行模式命令集

使用前请按 ESC 确认处于正常模式,再按 : 进入末行模式。

行号显示

命令 说明
set nu 在文件每一行前面显示行号

跳转至指定行

命令 说明
:# 跳转到第 # 行(如输入 15 后回车,跳转到第 15 行)

查找字符

命令 说明
/关键字 向后查找关键字,按 n 继续向后查找下一个
?关键字 向前查找关键字,按 n 继续向前查找下一个

/? 的区别/ 向后(文件末尾方向)搜索,? 向前(文件开头方向)搜索。

保存文件

命令 说明
:w 保存文件

离开 Vim

命令 说明
:q 退出 Vim
:q! 强制退出 Vim(不保存)
:wq 保存并退出 Vim

Vim 操作总结

三种核心模式

模式 说明
正常模式 默认模式,用于移动光标、删除、复制、粘贴等操作
插入模式 用于输入文字
底行模式(末行模式) 用于保存、退出、查找、设置行号等操作

注:Vim 共有 12 种模式,以上三种是最常用的核心模式,其余模式可自行进一步研究。

常用操作分类

操作类型 示例命令
打开文件 vim filename
关闭/退出 :q:wq:q!
查看行号 ctrl + g:set nu
查询 /关键字?关键字
插入 iao
删除 xdd#dd
替换 rR
撤销 uctrl + r
复制粘贴 yyywp
相关推荐
__Witheart__2 小时前
Ubuntu 根文件系统开发流程及注意事项
linux·ubuntu·rockchip
vortex52 小时前
解决 Alpine Linux 虚拟机从 VirtualBox 迁移到 VMware 的内核崩溃问题
linux·运维
qq_白羊座2 小时前
Linux 压缩 / 解压(tar)命令 + 参数详解
linux·运维·github
hj2862512 小时前
Rsync 数据同步 + Inotify 实时监控 完整版实操笔记3
linux·运维·网络
__Witheart__2 小时前
Linux SDK 中 build.sh 打包 updateimg 流程分析
linux·ubuntu·rockchip
姚愚谦2 小时前
Linux源码-通用双向链表的实现
linux
麦麦麦当劳大王2 小时前
OpenClaw安装部署(Windows/Linux/MacOS)
linux·windows·macos
烁3473 小时前
shell脚本简单语法
linux·娱乐
似水এ᭄往昔3 小时前
【Linux系统编程】--命令行参数和环境变量
linux·运维·服务器