linux | Vim 命令快捷操作
注:本文为过去的 “vim 使用笔记”。
跳转命令
跳转命令
#
:向前查找光标当前所在单词,并跳转到该单词的上一个出现位置。*
:向后查找光标当前所在单词,并跳转到该单词的下一个出现位置。
行内跳转
0
:跳转到当前行的行首。 [Home]$
:跳转到当前行的行尾。 [End]^
:跳转到当前行的第一个非空字符处。g_
:跳转到行尾最后一个非空白字符。|n
:跳转到当前行的第 n 列(例如:|10
跳转到第 10 列)。
文件内跳转
gg
:跳转到文件第一行的行首。G
:跳转到文件最后一行的行首。G$
:跳转到文件最后一行的行尾。 [Ctrl + End]:line-number
或:n
:跳转到指定行号的行(例如::100
跳转到第 100 行)。nG
:跳转到文件的第 n 行(例如:20G
跳转到文件的第 20 行)。/{pattern}
:跳转到第一个与{pattern}
匹配的位置。
屏幕跳转
H
:跳转到屏幕的最上方一行的第一个字符。M
:跳转到屏幕的中央那一行的第一个字符。L
:跳转到屏幕的最下方一行的第一个字符。Ctrl + b
:向上滚动一屏。Ctrl + f
:向下滚动一屏。
单词跳转
b
:跳转到前 1 个单词的开头(例如:5b
向前跳转到第 5 个单词的开头)。e
:跳转到当前单词的末尾。w
:跳转到下 1 个单词的开头(例如:5w
向后跳转到第 5 个单词的开头)。ge
:向前跳转到当前单词的结尾(例如:3ge
向前跳转到第 3 个单词的结尾)。
字符跳转
f{char}
:跳转到当前行下一个字符{char}
的位置(例如:fa
跳转到下一个字母 a)。F{char}
:跳转到当前行上一个字符{char}
的位置。h
或←
:向左跳转一个字符(例如:10h
向后跳转 10 个字符)。l
或→
:向右跳转一个字符(例如:10l
向前跳转 10 个字符)。
行间跳转
j
或↓
:向下跳转一行(例如:5j
向下跳转 5 行)。k
或↑
:向上跳转一行(例如:5k
向上跳转 5 行)。n<Enter>
:光标向下跳转 n 行
删除命令
字符删除
x
:删除当前光标所在位置的字符,并将光标自动向后跳转一个字符(例如:3x
删除光标后的三个字符,3X
删除光标前的三个字符)。dl
:同x
,删除光标所在位置的字符(例如:5dl
删除光标后的 5 个字符)。dh
:删除光标所在位置的前一个字符。
行删除
dd
:删除当前行(例如:5dd
向下删除 5 行,共 6 行)。D
:删除从光标当前位置一直到该行的末尾(包括光标所在的字符)。d$
:删除至行尾。d0
:删除至行首。
单词删除
dw
:删除光标所在位置到下 1 个单词开头之间的内容(不保留空格,例如:5dw
删除连续的 5 个单词)。de
:删除从光标位置到当前单词末尾的内容(不会删除空格)。dex
:删除从光标所在位置到当前单词末尾之间的所有字符,包括当前单词末尾的空格。db
:删除光标所在单词及其前面的空格。daw
:删除光标所在的单词及其后面的空格。diw
:删除光标所在的单词,并保留其前后的空格。bdw
:删除光标所在位置到前 1 个单词开头之间的内容,并且不保留空格。
范围删除
:3,5d
:删除从第 3 行到第 5 行。d1G
:删除从当前行到第一行之间的文本。dG
:删除到文件尾,也就是删除整个文档的后半部分(包括光标所在的字符)。dgg
:删除到文件首。dj
:删除当前行和下一行(例如:5dj
删除当前行及其下面的 5 行,即向下删除 6 行)。dk
:删除当前行和上一行(例如:5dk
删除当前行及其上面的 5 行,即向上删除 6 行)。d2w
:删除光标后面的两个单词。dX
:删除当前单词前面的空格,但不包括当前单词本身wde
:删除从光标位置到下 1 个单词开头的内容,并且保留空格。其中数字可以指定要删除的单词数
其他
d{motion}
:motion
可以是任何移动光标的命令,例如dw
,d2w
,d$
等.
注意: d
删除的字符存放到 Vim 的剪贴板中,可以使用 p
命令将其粘贴到另一个位置。
复制和粘贴
复制
y
:复制(默认是复制到"寄存器)。"+y
:复制到系统剪贴板(也就是 vim 的 + 寄存器)。yw
:复制 1 个单词(例如:y3w
复制 3 个单词)。yy
:复制游标所在的那一行(常用)。nyy
:n 为数字,复制光标所在的向下 n 行(例如:20yy
则是复制 20 行)。y1G
:复制游标所在行到第一行的所有数据。yG
:复制游标所在行到最后一行的所有数据。y0
:复制光标所在字符到该行行首的所有数据。y$
:复制光标所在字符到该行行尾的所有数据。5bgyw
:复制光标所在单词向前 5 个单词5egyw
:复制光标所在单词向后 5 个单词5b5egyw
:复制光标所在单词向前向后 3 个单词
粘贴
p
:粘贴(默认从"寄存器取出内容粘贴,在光标后)。P
:粘贴到光标前。"+p
:从系统剪贴板粘贴。5p
:粘贴五份。
插入新行
o
:在当前行下面插入 1 个新行,并将光标放置到新行的起始位置。O
:在当前行上面插入 1 个新行,并将光标放置到新行的起始位置。
插入模式
i
:在当前光标位置处插入文本。I
:在当前行的开头插入文本。a
:在当前光标位置后插入文本。A
:在当前行的结尾插入文本。o
:在当前行的下一行插入文本。O
:在当前行的上一行插入文本。
撤销和重做
u
:撤销,或输入:undo
命令。Ctrl + r
:重做或输入:redo
命令。
替换和搜索
:%s/old/new/g
:快速替换文本中所有的匹配项。:%s/old/new/gi
:快速替换文本中所有的匹配项,忽略大小写。:%s/[\\u4e00-\\u9fa5]//g
:替换所有中文字符。:g/^$/d
:删除所有空行。:%s/\\s\\+/ /g
:将连续空格替换为单个空格。:g/^\\s*$/d
:删除包含空格的空行。:%s/^\\s*\\n//
:删除文档中的连续空格,只保留单个空格,并且删除包含空格的空行。
代码块操作
代码块缩进
<
:代码块左移(减少缩进)。>
:代码块右移(增加缩进)。<<
:减少选中行的缩进,块状可视模式下使用。>>
:增加选中行的缩进,块状可视模式下使用。
代码块排序
:sort
:按字典顺序排序选中的行。:sort!
:按逆字典顺序排序选中的行。:sort n
:按数字顺序排序选中的行。
代码块注释
I
:在当前行的开头插入注释(需要配合可视块模式)。A
:在当前行的末尾添加注释(需要配合可视块模式)。:%s/^/# /
:在每一行的行首插入 “#” 作为注释符号。
代码块格式化
=
:重新格式化选中的代码块(自动缩进)。
其他命令
nohl
:取消高亮。:set whichwrap+=<,>
:允许光标在行首和行尾跳转到下一行或上一行。:set nofixeol
:禁用文件末尾自动添加新行。:set mouse=a
:启用鼠标支持。:set mousemodel=extend
:设置鼠标滚动时光标的移动方式为扩展模式:set number
或者:set nu
:显示行号:set nonumber
或者:set nonu
:不显示行号
文件操作
保存并退出
:wq
:保存文件并退出编辑器。:x
:保存文件并退出编辑器,仅当文件自上次保存以来有修改时。:xit
:保存文件并退出编辑器,无论文件是否被修改。:ZZ
:保存文件并退出编辑器
仅保存
:w
:保存更改但不退出 Vim。:w!
:强制保存更改,忽略某些文件类型插件的警告。
保存到其他文件
:w <filename>
:将更改保存到指定的文件名中,不退出 Vim。:w! <filename>
:强制将更改保存到指定的文件名中,忽略警告。
保存所有打开的文件
:wqa
:保存所有打开的文件并退出 Vim。
撤销保存
:undo
:撤销最近的一次保存操作。
设置自动保存
:set autowrite
:自动保存更改,每次执行命令时自动写入文件。:set noautowrite
:取消自动保存。
保存并退出所有打开的标签页
:wqa
:在有多个标签页的情况下,保存所有更改并退出 Vim。
保存并关闭当前窗口
:close
:关闭当前窗口:winc
:保存当前窗口的更改并关闭窗口,不退出 Vim。
保存并关闭所有窗口
:wqa
:保存所有更改并关闭所有窗口,退出 Vim。
自定义快捷键
:map <C-f> <PageDown>
:将 Ctrl+f 映射为 PageDown(向下滚动一页)。:map <C-b> <PageUp>
:将 Ctrl+b 映射为 PageUp(向上滚动一页)。:map <C-s> :w<CR>
: 将 Ctrl + s 映射为保存。
正则表达式和替换命令
插入特定字符
:%s/^/#/
:在整个文件中的每一行的行首插入 “#” 字符:1,5s/^/# /
:在第 1 行到第 5 行之间的每一行的行首插入 “#” 字符
删除特定字符
:%s/^#//
:删除整个文件中的每一行的行首的 “#” 字符:1,5s/^# //
:删除第 1 行到第 5 行之间的每一行的行首插入的 “#” 字符
插入行首和行尾字符
:%s/^/\\/\\/
:在每一行的行首插入 “//”:1,5s/^/# /
:在第 1 行到第 5 行的行首插入 "# "
删除行首和行尾字符
:%s/^\\s\\+//
:删除每行行首的空格:%s/\\s\\+$//
:删除每行行尾的空格
替换文本
:%s/old/new/g
:将文件中所有的 “old” 替换为 “new”:%s/old/new/gi
:将文件中所有的 “old” 替换为 “new”,忽略大小写:%s/\\n//g
:删除所有的换行符:%s/\\r//g
:删除所有的回车符:%s/\\t//g
:删除所有的制表符
特定范围替换
:<起始行号>,<结束行号>s/^/<插入的字符>/
:在特定范围的行上执行插入操作:<起始行号>,<结束行号>s/^<要删除的字符>//
:在特定范围的行上执行删除操作
未完待续……
相关文章:
linux | Vim 命令快捷操作
注:本文为过去的 “vim 使用笔记”。 跳转命令 跳转命令 #:向前查找光标当前所在单词,并跳转到该单词的上一个出现位置。*:向后查找光标当前所在单词,并跳转到该单词的下一个出现位置。 行内跳转 0:跳转…...

开源订货系统哪个好 三大订货系统源码推荐
在数字化转型加速的今天,企业对订货系统的需求日益增长。一款优质的订货系统源码不仅能提升供应链效率,还能通过二次开发满足个性化业务需求。这里结合 “标准化、易扩展” 两大核心要求,为您精选三款主流订货系统源码,助您快速搭…...
跟着 Lua 5.1 官方参考文档学习 Lua (11)
文章目录 5.4.1 – PatternsCharacter Class:Pattern Item:Pattern:Captures: string.find (s, pattern [, init [, plain]])例子:string.find 的简单使用 string.match (s, pattern [, init])string.gmatch (s, pattern)string.gsub (s, pattern, repl [, n])例子&…...
使用 MyBatis XML 和 QueryWrapper 实现动态查询
本文档介绍了如何在 MyBatis 中结合 XML 配置和 MyBatis-Plus 的 QueryWrapper 来实现动态查询。 1. XML 中定义基本查询 首先,在 MyBatis XML 文件中定义一个基本的 select 查询: <select id"selectCode" resultType"java.util.Ma…...

视频理解开山之作 “双流网络”
1 论文核心信息 1.1核心问题 任务:如何利用深度学习方法进行视频中的动作识别(Action Recognition)。挑战: 视频包含时空信息,既需要捕捉静态外观特征(Spatial Information),也需要…...
每日一题——搜索二维矩阵
搜索二维矩阵 一、题目背景二、题目描述示例 1:示例 2:约束条件: 三、解题思路分析1. **错误思路回顾**2. **Z字形查找算法**算法步骤: 3. **算法优势** 四、代码实现代码说明: 五、测试用例测试用例 1:测试…...

PPT 小黑第21套
对应大猫22 动作按钮 “转到首页” 编号从1开始显示,点设计 -幻灯片大小 -修改幻灯片编号起始值为0(那么第二张幻灯片页码为1)...
大模型day01自然语言+大模型+环境
[TOC]大模型day01 自然语言处理 汉字的词是连着的,所以需要一个汉语处理模块,把词语、成语自动加空格隔开。 知识图谱构建——>从大语言文本挖掘出来 自然语言处理:翻译、智能语音 自然语言处理:理解一句话意思,…...

VSTO(C#)Excel开发3:Range对象 处理列宽和行高
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...

【2025】Electron + React 架构筑基——从零到一的跨平台开发
引言 源代码仓库: Github仓库【electron_git】 你是否厌倦了在命令行中反复输入git status,却依然无法直观看到文件变化? 是否羡慕VS Code的丝滑Git集成,却苦恼于无法定制自己的专属工具? 本专栏将为你打开一扇新的…...
AWS 如何导入内部SSL 证书
SSL 证书的很重要的功能就是 HTTP- > HTTPS, 下面就说明一下怎么导入ssl 证书,然后绑定证书到ALB. 以下示例说明如何使用 AWS Management Console 导入证书。 从以下位置打开 ACM 控制台:https://console.aws.amazon.com/acm/home。如果您是首次使用 ACM,请查找 AWS Cer…...

清华北大推出的 DeepSeek 教程(附 PDF 下载链接)
清华和北大分别都有关于DeepSeek的分享文档,内容非常全面,从原理和具体的应用,大家可以认真看看。 北大 DeepSeek 系列 1:提示词工程和落地场景.pdf 北大 DeepSeek 系列 2:DeepSeek 与 AIGC 应用.pdf 清华 Deep…...
【空地协同技术教程:概念与技术手段解析】
空地协同技术教程:概念与技术手段解析 一、空地协同的概念与核心价值 定义 空地协同(Air-Ground Collaboration)是指通过无人机(UAV)与无人车(UGV)等异构平台的跨域协作,利用各自的…...

【2025小黑课堂】计算机二级WPS精选系列20G内容(可下载:真题+预测卷+软件+选择题)
2025年3月全国计算机等级考试即将于3月29日至31日举行。为了帮助广大考生高效备考,小编特意收集并整理了最新版(备考2025年3月)的小黑课堂计算机二级WPS 电脑题库软件,助力考生在考试中游刃有余,轻松通关! …...

蓝桥杯备赛:炮弹
题目解析 这道题目是一道模拟加调和级数,难的就是调和级数,模拟过程比较简单。 做法 这道题目的难点在于我们在玩这个跳的过程,可能出现来回跳的情况,那么为了解决这种情况,我们采取的方法是设定其的上限步数。那么…...
kotlin高级用法总结
Kotlin 是一门功能强大且灵活的编程语言,除了基础语法外,它还提供了许多高级特性,可以帮助你编写更简洁、高效和可维护的代码。以下是 Kotlin 的一些高级用法,涵盖了协程、扩展函数、属性委托、内联类、反射等内容。 协程&#x…...

transformers - AWQ
本文翻译整理自:https://huggingface.co/docs/transformers/main/en/quantization/awq 文章目录 一、引言二、加载 autoawq 量化的模型三、Fused modules支持的架构不受支持的架构 四、ExLlamaV2五、CPU 一、引言 Activation-aware Weight Quantization (AWQ) 激活…...

mysql下载与安装、关系数据库和表的创建
一、mysql下载: MySQL获取: 官网:www.mysql.com 也可以从Oracle官方进入:https://www.oracle.com/ 下载地址:https://downloads.mysql.com/archives/community/ 选择对应的版本和对应的操作系统ÿ…...
在华为设备上,VRRP与BFD结合使用可以快速检测链路故障并触发主备切换
在华为设备上,VRRP与BFD结合使用可以快速检测链路故障并触发主备切换。以下是VLAN接口下配置VRRP与BFD的步骤: 目录 1. 配置BFD会话 2. 配置VLAN接口 3. 配置VRRP 4. 验证配置 5. 保存配置 1. 配置BFD会话 在两台设备之间配置BFD会话,…...
RK3588开发笔记-fiq_debugger: cpu 0 not responding, reverting to cpu 3问题解决
目录 前言 一、FIQ Debugger介绍 二、rockchip平台配置方法 三、问题分析定位 IRQF_NOBALANCING 的含义 总结 前言 在进行 RK3588 开发的过程中,我们可能会遇到各种棘手的问题。其中,“fiq_debugger: cpu 0 not responding, reverting to cpu 3” 这个错误出现在RK3588的…...

UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

AD学习(3)
1 PCB封装元素组成及简单的PCB封装创建 封装的组成部分: (1)PCB焊盘:表层的铜 ,top层的铜 (2)管脚序号:用来关联原理图中的管脚的序号,原理图的序号需要和PCB封装一一…...