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会向前寻找到您要的关键字为止
相关推荐
Apipi*5 小时前
30天速通Linux 第六章信号及信号处理
linux·运维·信号处理
天启HTTP5 小时前
爬虫防封核心原理:IP轮换机制与风控规避逻辑
linux·服务器·网络·爬虫·tcp/ip
qq_284274057 小时前
机械原理笔记:平面机构自由度计算(复合铰链、局部自由度、虚约束)与四杆机构入门(含考点)
笔记·学习·平面·自动化·制造
广州浮点FLOATLIC8 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
qq_284274058 小时前
数控铣床与加工中心笔记:铣刀与刀柄系统、G54试切对刀、镜像加工指令、孔加工工艺(钻扩铰镗)与固定循环G73/G83/G81/G76/G87/G84
笔记·学习·自动化·制造
BLUcoding8 小时前
接口服务公网超时排查记录:SecureRandom 阻塞问题分析与解决
java·linux·springboot·aes·securerandom
AIgorithmGEEK8 小时前
[Linux]从手写报头到内核套路:序列化、反序列化与自定义协议全链路
linux·运维·服务器·网络·序列化·反序列化
Nil2088 小时前
leetcode 139单词拆分
linux·运维·服务器
Starry-sky(jing)8 小时前
BUG: unable to handle kernel paging request 完整排查:dmesg 四要素与三路定罪
linux·运维·服务器·内核·排障
mounter6259 小时前
从硬件互连到操作系统变革:CXL 技术演进与 Linux 内核工程挑战
linux·运维·服务器