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

Vim 编辑器工作模式及操作指南

Vim 编辑器工作模式及操作指南

一、工作模式概述

Vim编辑器主要包含四种工作模式,分别是:

  • 命令模式(默认进入模式)
  • 输入模式(编辑模式)
  • 末行模式(指令模式)
  • 可视模式

二、模式切换及操作

1. 命令模式

是Vim的默认模式,可执行光标移动、复制、删除等操作,无法直接输入文本。

(1)命令模式 → 输入模式(编辑模式)

通过以下按键进入输入模式:

  • i:在当前光标位置插入编辑
  • I:在光标所在行行首插入编辑
  • o:在光标所在行下方新建一行并编辑
  • O:在光标所在行上方新建一行并编辑
  • a:在光标位置后一位插入编辑
  • A:在光标所在行行尾插入编辑
  • s:删除光标所在字符后插入编辑
  • S:删除光标所在行后插入编辑
    返回命令模式:按Esc键)
(2)命令模式中的常用快捷键
  • 光标定位

    • G:跳转到文本最后一行
    • gg:跳转到文本第一行
    • nG/ngg:跳转到第n行(如10G/10gg跳转到第10行)
    • ctrl+f:向下翻页
    • ctrl+b:向上翻页
    • home/^/0:光标移动到行首
    • end/$:光标移动到行尾
  • 删除操作

    • x/del:删除光标所在字符
    • dd:删除光标所在整行
    • ndd:删除从光标行开始的n行(如3dd删除3行)
    • d^:删除光标前字符到行首的内容
    • d$:删除光标处到行尾的内容(含光标字符)
  • 复制粘贴

    • yy:复制光标所在整行
    • nyy:复制从光标行开始的n行(如5yy复制5行)
    • p:在光标下一行粘贴复制内容
    • P:在光标上一行粘贴复制内容
  • 查找功能

    • /关键词:向下查找关键词
    • n:继续向下查找
    • N:向上查找
    • 消除查找高亮:需进入末行模式执行:noh

2. 末行模式

由命令模式输入:(冒号)进入,用于执行保存、退出、设置等指令。

常用末行命令:
  • :q:不保存退出
  • :q!:强制不保存退出
  • :wq:保存并退出
  • :wq!:强制保存并退出
  • :set nu:显示行号
  • :set nu!:取消行号显示
  • :w /路径/文件名:将内容保存到指定文件(如:w /tmp/bb
  • :e /路径/文件名:打开新文件(需先保存当前文件)
  • :r /路径/文件名:读取其他文件内容并插入当前文件(如:r /tmp/cc
  • :nohl:取消查找高亮(同:noh
文本替换命令:
  • :%s/旧内容/新内容/g:替换全文所有匹配的旧内容
  • :%s/旧内容/新内容:替换每行第一个匹配的旧内容
  • :n,m s/旧内容/新内容/g:替换n到m行中所有匹配的旧内容(如:1,7 s/旧/新/g

3. 多文件操作

  • vim 文件1 文件2 -o:水平分屏同时打开多个文件
  • vim 文件1 文件2 -O:垂直分屏同时打开多个文件
  • 分屏切换:按ctrl + w

4. 可视模式

由命令模式进入,用于选择文本块进行操作,按Esc返回命令模式。

三种可视模式:
  • 字符模式:按v(小写)进入,按字符单位选择文本,按x删除选中内容
  • 行模式:按V(大写,shift+v)进入,按行单位选择文本
  • 块模式:按ctrl+v进入,按矩形块单位选择文本(适合列操作)

三、模式切换总结

  • 命令模式 ↔ 输入模式:通过i/I/o/O/a/A/s/S(进入输入)和Esc(返回命令)
  • 命令模式 ↔ 末行模式:通过:(进入末行)和Esc(返回命令)
  • 命令模式 ↔ 可视模式:通过v/V/ctrl+v(进入可视)和Esc(返回命令)
http://www.xdnf.cn/news/1201105.html

相关文章:

  • 抗辐照芯片在低轨卫星星座CAN总线通讯及供电系统的应用探讨
  • 比特币运行机制全解析:区块链、共识算法与数字黄金的未来挑战
  • rapidocr v3.3.0发布了
  • OpenLayers 综合案例-轨迹回放
  • Torchv Unstrustured 文档解析库
  • C语言:函数
  • C/C++核心知识点详解
  • Qt C++ GUI 函数参数速查手册:基础与布局
  • RK3568 Linux驱动学习——Linux驱动开发准备工作
  • 【科研绘图系列】R语言绘制边际云雨图散点图
  • 基于大模型的预训练、量化、微调等完整流程解析
  • rust-模块树中引用项的路径
  • 1439-素数环2
  • 扩展组件(uni-ui)之uni-group
  • 硅基计划3.0 学习总结 肆 二叉树 初版
  • 疯狂星期四文案网第21天运营日记
  • 剑指offer第2版:双指针+排序+分治+滑动窗口
  • QT6 源,七章对话框与多窗体(17)用于辅助多文档 MDI 窗体设计 QMdiArea 的类 QMdiSubWindow:
  • MySQL 8.4 Windows 版安装记录与步骤参考
  • 《频率之光:群星之我》
  • mmap的调用层级与内核态陷入全过程
  • 依赖倒置原则 Dependency Inversion Principle - DIP
  • 不坑盒子突然不见了怎么办?
  • VILA系列论文解读
  • 详细解释一个ros的CMakeLists.txt文件
  • AI大模型前沿:Muyan-TTS开源零样本语音合成技术解析
  • 自然语言处理NLP (1)
  • 【I】题目解析
  • vmware虚拟机中显示“网络电缆被拔出“的解决方法
  • rust-包和箱子