当前位置: 首页 > news >正文

Vim 编辑器全模式操作指南

Vim 编辑器全模式操作指南

Vim 是 Linux 系统中最常用的文本编辑器之一,其强大之处在于灵活的工作模式和高效的操作命令。掌握 Vim 的工作模式切换及核心操作,能显著提升文本编辑效率。本文将详细解析 Vim 的 4 种工作模式及常用操作命令

一、Vim 的 4 种工作模式

Vim 的核心是 “模式化编辑”,不同模式对应不同的操作场景,模式间可通过特定命令切换。

模式进入方式核心功能
命令模式启动 Vim 默认进入执行光标移动、删除、复制等编辑命令
输入模式命令模式下通过特定命令进入直接输入 / 编辑文本内容
末行模式命令模式下输入:进入执行保存、退出、查找替换等全局操作
可视模式命令模式下通过v/V/ctrl+v进入选中一块文本进行批量操作(删除、复制等)

二、模式切换与核心操作

1. 命令模式 ↔ 输入模式(编辑模式)

命令模式是 Vim 的 “控制中心”,无法直接输入文本,需切换到输入模式才能编辑内容。以下是从命令模式进入输入模式的常用命令:

命令功能描述
i在当前光标所在位置开始编辑(光标不动)
I在光标所在行的行首开始编辑
o在光标所在行下方新建一行并编辑
O在光标所在行上方新建一行并编辑
a在光标所在位置后一位开始编辑
A在光标所在行的行尾开始编辑

返回命令模式:输入模式下按Esc键(左下角会消失 “–INSERT–” 提示)

2. 命令模式常用快捷键

命令模式下可执行光标移动、删除、复制等操作,无需进入输入模式即可完成高效编辑

(1)光标移动
命令功能描述
G跳转到文本最后一行
gg跳转到文本第一行
nG/ngg跳转到第n行(如10G跳转到第 10 行)
ctrl+f向下翻一页(forward)
ctrl+b向上翻一页(backward)
home/^/0光标移动到行首
end/$光标移动到行尾
(2)删除操作
命令功能描述
x/Del删除光标所在位置的单个字符
dd删除光标所在行(整行)
ndd删除从光标行开始的n行(如3dd删 3 行)
d^删除从光标前一位到行首的所有内容
d$删除从光标位置到行尾的所有内容(含光标)
(3)复制与粘贴
命令功能描述
yy复制光标所在行(整行)
nyy复制从光标行开始的n行(如5yy复制 5 行)
p在光标行下方粘贴复制的内容
P在光标行上方粘贴复制的内容
(4)查找操作
命令功能描述
/关键词从当前位置向下查找 “关键词”(如/sbin
n继续向下查找下一个匹配项
N向上查找上一个匹配项
:noh末行模式下执行,取消查找结果的高亮显示

三、末行模式操作(命令模式→:进入)

末行模式用于执行全局操作(如保存、退出、替换等),命令输入在屏幕底部的 “末行”,执行后自动返回命令模式

1. 退出与保存

命令功能描述
:q不保存修改,退出 Vim(若有未保存内容会提示)
:q!强制不保存修改并退出(忽略未保存内容)
:wq保存修改并退出 Vim
:wq!强制保存修改并退出(对只读文件有效,需权限)

2. 行号与文件操作

命令功能描述
:set nu显示文本的行号
:set nu!取消行号显示
:w /path/filename将当前内容另存为指定文件(如:w /tmp/bb
:e /path/filename打开新文件编辑(需先保存当前文件修改)
:r /path/filename读取指定文件内容,插入到当前光标后

3. 文本替换(核心功能)

替换命令格式::范围 s/旧内容/新内容/选项

命令示例功能描述
:%s/旧/新/g替换整个文件中所有 “旧内容” 为 “新内容”(%表示全部行,g表示每行所有匹配)
:%s/旧/新替换整个文件中每行第一个 “旧内容” 为 “新内容”
:1,7s/旧/新/g替换第 1-7 行中所有 “旧内容” 为 “新内容”

四、多文件分屏操作

Vim 支持同时打开多个文件并分屏显示,方便对比或编辑

命令功能描述
vim file1 file2 -o水平分屏显示file1file2(上下排列)
vim file1 file2 -O垂直分屏显示file1file2(左右排列)

五、可视模式操作(批量处理)

可视模式用于 “选中一块文本” 后批量操作(删除、复制、替换等),按Esc退出可视模式返回命令模式

模式类型进入方式选中单位典型操作(选中后)
字符模式命令模式按v按单个字符选中x删除选中内容
行模式命令模式按V按整行选中dd删除选中行
块模式命令模式按Ctrl+v按矩形块选中(如多列)批量插入注释(如I#+Esc

总结

Vim 的高效源于 “模式化” 设计:命令模式负责编辑控制,输入模式专注文本录入,末行模式处理全局操作,可视模式简化批量处理。熟练掌握模式切换(尤其是Esc返回命令模式)和核心命令,能让 Vim 成为日常工作的 “效率利器”。建议通过实际编辑练习(如修改配置文件)加深记忆,逐步形成 “不碰鼠标” 的编辑习惯

http://www.dtcms.com/a/297062.html

相关文章:

  • 纳米编辑器之Nano 编辑器退出**的详细操作指南
  • 【MacOS】发展历程
  • Linux 中 `chown`、`chgrp` 和 `chmod` 命令详解
  • openGauss数据库在CentOS 7 中的单机部署与配置
  • VMware虚拟出来的centos中设置静态ip
  • fish-speech 在50系列显卡使用 --compile加速兼容
  • Rust + Tauri 开发所需环境清单(以 Windows 为例)
  • 【unitrix】 6.16 非负整数类型( TUnsigned )特质(t_unsingned.rs)
  • [Rust 基础课程]猜数字游戏-获取用户输入并打印
  • 智能问答分类系统:基于SVM的用户意图识别
  • 弹性网:基于神经网络的多组分磁共振弹性成像波反演与不确定性量化|文献速递-医学影像算法文献分享
  • 奥比中光的dabai_dcw2相机彩色对齐方案
  • Android Camera setRepeatingRequest
  • 11. isaacsim4.2教程-Transform 树与Odometry
  • Java面试题(中等)
  • Cartographer安装测试与模块开发(三)--Cartographer在Gazebo仿真环境下的建图以及建图与定位阶段问题(实车也可参考)
  • 融合与智能:AI 浪潮驱动下数据库的多维度进化与产业格局重塑新范式
  • 深入解析Linux匿名管道机制与应用
  • 从数据孤岛到融合共生:KES V9 2025 构建 AI 时代数据基础设施
  • Lua 函数
  • JAVA_THIRTEEN_常用API
  • 星慈光编程虫2号小车讲解第三篇--附件概述
  • ai存在意义的对话
  • 从零开发Java坦克大战:架构设计与难点突破 (上)
  • 星慈光编程虫2号小车讲解第二篇--向左向右平移
  • 处理URL请求参数:精通`@PathVariable`、`@RequestParam`与`@MatrixVariable`
  • 结构化布线系统详解
  • Datawhale AI 夏令营-心理健康Agent开发学习-Task2.1
  • 基于GNS3的Zabbix企业级监控实践:涵盖基础配置与三大核心服务监控
  • 星慈光编程虫2号小车讲解第四篇--触摸按键