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 光标移到该行的第 # 个位置(如 5l、56l)
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
查询 /关键字、?关键字
插入 i、a、o
删除 x、dd、#dd
替换 r、R
撤销 u、ctrl + r
复制粘贴 yy、yw、p
相关推荐
djjjx.5 分钟前
Linux进程篇(四):内核托底与生死交错 ,深度硬核剖析“僵尸”与“孤儿”进程
linux·运维·服务器
为思念酝酿的痛16 分钟前
Reactor反应堆模式
linux·服务器·网络
沫璃染墨17 分钟前
从零入门计算机网络系列(六):TCP套接字编程实战——从listen监听到客户端与服务器通信
linux·服务器·c++·tcp/ip·计算机网络·tcp
笨笨饿21 分钟前
#142_VS Code.map文件插件的用法
git·python·stm32·单片机·嵌入式硬件·物联网·vim
2401_8724187827 分钟前
把 Ubuntu 服务器变成 AI Agent 终端:用自然语言或语音管理 Linux,任何命令都先审批(附完整 Python 源码)
linux·服务器·ubuntu·agent
coderSong25681 小时前
【Ubuntu】ctrl+shift+f 繁体中文切换、VScode全集搜索
linux·vscode·ubuntu
AR-26710-1 小时前
Linux Day22——复习第三部分
linux·运维
迪康coolmu1 小时前
基于迪康端点安全一体化管理系统的公用终端上机与信创补丁实战
linux·运维·服务器·网络·安全·电脑
blueSatchel1 小时前
imx6ull显示控制器设备驱动解读
linux·嵌入式
水饺编程1 小时前
第2章:Linux 基础,关机命令
linux·c语言·汇编