Vim 模式切换 | 命令集

Vim 模式切换 | 命令集

  • [vim 主要模式及切换](#vim 主要模式及切换)
    • 一、正常/普通/命令模式
      • [1 光标相关操作命令集](#1 光标相关操作命令集)
        • [1.1 光标移动](#1.1 光标移动)
        • [1.2 文字删除](#1.2 文字删除)
        • [1.3 粘贴和复制](#1.3 粘贴和复制)
        • [1.4 替换](#1.4 替换)
        • [1.5 字符更改](#1.5 字符更改)
    • 二、插入模式
      • [2.1 插入模式和命令行模式相互切换](#2.1 插入模式和命令行模式相互切换)
    • 三、末行模式
      • [2.1 末行模式和命令行模式相互切换](#2.1 末行模式和命令行模式相互切换)
      • [2.2 末行模式相关命令集](#2.2 末行模式相关命令集)

vim 主要模式及切换

vim是一款历史悠久的多模式文本编辑器,在不同模式下有不同的功能。但实际开发过程中,主要有以下5中模式。

一、正常/普通/命令模式

Vim默认模式为命令模式,该模式主要用于控制屏幕光标的移动,字符、行的删除。

1 光标相关操作命令集

1.1 光标移动
快捷键 功能
小写字母:h、j、k、l vim允许直接使用键盘上的光标移动键来上下左右移动光标,但正规的vim是用h(左移)、j(下移)、k(上移)、l(右移)来控制光标行为
gg 光标跳转到文本开始
(n)+ shift + g 光标跳转到第n行 或 文本末尾
shift + ^ 光标移动到该方的"行首"
shify + $ 光标移动到该方的"行尾"
数字(n) + l 光标从当前位置开始,向后移动n位
w 光标跳到下一个单词的开头(如果非单词,则是下一个字符)
e 光标跳到下一个单词的结尾(如果非单词,则是下一个字符)
b 光标跳到上一个单词的开头(如果非单词,则是上一个字符)
ctrl + b 屏幕往"后"移动一页
ctrl + f 屏幕往"前"移动一页
ctrl + u 屏幕往"后"移动半页
ctrl + d 屏幕往"前"移动半页
1.2 文字删除
快捷键 功能
x 删除当前光标所在位置字符
数字(n) + x 删除光标所在位置后n个字符(包含光标所在位置本身)
shift + x 删除光标所在位置的前一个字符
数字(n) + shift + x 删除光标所在位置的前n一个字符
dd 删除光标所在行
数字(n) + dd 从光标所在行开始,删除n行
1.3 粘贴和复制
快捷键 功能
yy 复制当前行到缓冲区
数字(n) + yy 从光标所在行开始,向后复制n行到到缓冲区
数字(n) +p 将缓冲区内的n字符贴到光标所在位置。tip:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能
yw 将光标所在位置到字尾的字符复制到缓冲区中。
#yw 复制#个字符到缓冲区
1.4 替换
快捷键 功能
r 替换光标所在处的字符
R 替换光标所到之处的字符,直到按下ESC键为止
u 撤销回到上一个操作。按多次"u"可以执行多次撤销
ctrl + r 撤销的恢复
1.5 字符更改
快捷键 功能
cw 更改光标所在处的字到字尾处
c#w 例如,「c3w」表示更改3个字

二、插入模式

要进行文字输入,vim必须从命令行模式切换到插入模式。

2.1 插入模式和命令行模式相互切换

  1. 从命令行模式切换到插入模式有以下三种方式:
快捷键 功能
i 按i进入插入模式后,是从光标当前位置开始输入文字
a 按a进入插入模式后,是从光标当前位置的下一个位置开始输入文字
o 按o进入插入模式后,是插入新的一行,从行首开始输入文字
  1. 从插入模式切换命令行模式只需无脑Esc即可

三、末行模式

在末行模式中,我们可以进行文件的保存和退出,文件替换、查找字符串和列出行号等操作。

2.1 末行模式和命令行模式相互切换

  1. 从命令行模式切换到末行模式,只需shift + : 即可。
  2. 从末行模式退回命令行模式只需Esc。

2.2 末行模式相关命令集

快捷键 功能
set + nu 列出行号
set + nonu 取消行号
数字(n) 在冒号后输入一个数字后回车确认,光标会跳转到该行
w! 单独w表示保存文件;w!表示强制保存文件
q! 单独q表示退出文件;q!表示强制退出文件
/ + 关键字 查找关键字,如果第一次找的关键字不是您想要的,可以一直按n会往后寻找到您要的关键字为止
? + 关键字 查找关键字,如果第一次找的关键字不是您想要的,可以一直按n会向前寻找到您要的关键字为止
相关推荐
Escalating_xu3 分钟前
【Linux 网络编程】ARP 的具体过程与 ARP 欺骗:一条 IP → MAC 映射,怎样改变数据的去向?
linux·网络·tcp/ip
Nuanyt8 分钟前
LeetCode Hot 100 链表专题2 3 题 (Java)
java·笔记·算法·leetcode·链表
asaotomo11 分钟前
截图识题、AI 讲解、笔记沉淀:Chrome 扩展体验
前端·chrome·笔记
熊猫钓鱼>_>21 分钟前
鸿蒙PC高分屏与键鼠交互适配:DPI缩放、右键菜单一次讲清
开发语言·笔记·华为·ai编程·harmonyos·鸿蒙·鸿蒙心迹
坚定的共产主义生产设备永不宕机22 分钟前
服务器从裸机开始搭建ESXI虚拟机
linux·服务器·网络
刚入门的大一新生29 分钟前
Linux-线程封装
linux·运维·服务器
god_cvz32 分钟前
实践:Linux环境构建CTB工具(cesium-terrain-builder)
linux·gis·ctb
H_BB39 分钟前
面试笔记:数据加密和心跳机制
笔记·面试·职场和发展
QianhangQianping43 分钟前
撤销重做不是「存快照」:一个可视化编辑器的Operation 设计
java·前端·数据库·typescript·编辑器·前端架构·撤销重做
Android系统攻城狮1 小时前
Linux FFmpeg深度解析之av_dump_format调用流程与实战(十一)
linux·运维·服务器·ffmpeg·1024程序员节·音视频进阶