当前位置: 首页 > 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.lryc.cn/news/601998.html

相关文章:

  • Spring AI 项目实战(二十一):Spring Boot + AI +DeepSeek驱动的智能题库系统(附完整源码)
  • zabbix-agent静默安装
  • @RefreshScope 核心原理深度解析:Spring Boot 的动态魔法
  • 抗辐照芯片在低轨卫星星座CAN总线通讯及供电系统的应用探讨
  • 第二阶段-第二章—8天Python从入门到精通【itheima】-138节(MySQL的综合案例)
  • 【程序员私房菜】python洋葱炒王中王火腿肠
  • 数据结构基础内容(第二篇:线性结构)
  • 【LeetCode刷题指南】--设计循环队列
  • 自由学习记录(74)
  • 【LeetCode 热题 100】51. N 皇后——回溯
  • c语言结构体字节对齐
  • EPOLLONESHOT 深度解析:Linux epoll 的单次触发机制
  • LeetCode 1577.数的平方等于两数乘积的方法数
  • 详解力扣高频SQL50题之180. 连续出现的数字【困难】
  • Spring MVC设计精粹:源码级架构解析与实践指南
  • 网络基础19:OSPF多区域实验
  • 俄罗斯方块游戏开发(面向对象编程)
  • Python-初学openCV——图像预处理(四)——滤波器
  • Redis6.0+安装教程(Linux)
  • vscode找不到python解释器的解决方案
  • VINS外参精确自标定飘的问题
  • Triton编译
  • C++ 多线程 std::thread::joinable
  • 3.Linuxvim编辑器及快捷键的使用
  • 【奔跑吧!Linux 内核(第二版)】第4章:内核编译和调试
  • 进度条制作--Linux知识的小应用
  • Linux 基础命令大全
  • Petalinux生成文件的关系
  • 基于Java的KTV点歌系统的设计与实现
  • 8.c语言指针