当前位置: 首页 > 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.dtcms.com/a/300662.html

相关文章:

  • ksql连接数据库免输入密码交互
  • Spring Boot + @RefreshScope:动态刷新配置的终极指南
  • C#中Visual Studio平台按照OfficeOpenXml步骤
  • Pinocchio 结合 CasADi 进行 IK 逆运动学及 Mujoco 仿真
  • 【嵌入式硬件实例】-555定时器调光电路实现
  • Java大数据面试实战:Hadoop生态与分布式计算
  • 数据赋能(340)——技术平台——共享平台
  • 不坑盒子:Word里1秒制作“花括号”题目,多音字组词、形近字组词……
  • 零基础学习性能测试第五章:求最佳线程数
  • MySQL 8.0.42创建MGR集群
  • 元宇宙中的“虫洞“:技术实现、应用场景与未来挑战
  • Dify v1.6.0:支持MCP了,为更顺畅的交互打开了大门
  • 【Linux系列】nproc
  • CPA-7-资产减值
  • 墨者:通过手动解决SQL手工注入漏洞测试(MySQL数据库)
  • 握手未来,PostgreSQL认证专家
  • GTP4.0官网版:智能对话与知识引擎,重塑客户服务效率
  • Sql server开挂的OPENJSON
  • USB设备调试
  • 【LeetCode刷题指南】--设计循环队列
  • Java 大视界 -- Java 大数据机器学习模型在电商客户细分与精准营销活动策划中的应用(367)
  • 3D碰撞检测系统 基于SAT算法+Burst优化(Unity)
  • Java面试宝典:MySQL执行原理二
  • MongoDB索引及其原理
  • 接口自动化-logging日志
  • Qt 窗口 工具栏QToolBar、状态栏StatusBar
  • 24点数学游戏(穷举法求解表达式)
  • 基于Matlab自适应阈值分割算法的图像处理研究
  • esp32s3创建rust工程 window成功mac
  • [硬件电路-97]:模拟器件 - 如何通过外部的闭环负反馈,让运算放大器从“暴脾气”、“愣头青”、情绪容易失控者变成“沉着”、“冷静”的精密调控者的?