当前位置: 首页 > news >正文

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 命令快捷操作

注&#xff1a;本文为过去的 “vim 使用笔记”。 跳转命令 跳转命令 #&#xff1a;向前查找光标当前所在单词&#xff0c;并跳转到该单词的上一个出现位置。*&#xff1a;向后查找光标当前所在单词&#xff0c;并跳转到该单词的下一个出现位置。 行内跳转 0&#xff1a;跳转…...

开源订货系统哪个好 三大订货系统源码推荐

在数字化转型加速的今天&#xff0c;企业对订货系统的需求日益增长。一款优质的订货系统源码不仅能提升供应链效率&#xff0c;还能通过二次开发满足个性化业务需求。这里结合 “标准化、易扩展” 两大核心要求&#xff0c;为您精选三款主流订货系统源码&#xff0c;助您快速搭…...

跟着 Lua 5.1 官方参考文档学习 Lua (11)

文章目录 5.4.1 – PatternsCharacter Class:Pattern Item:Pattern:Captures: string.find (s, pattern [, init [, plain]])例子&#xff1a;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 中定义基本查询 首先&#xff0c;在 MyBatis XML 文件中定义一个基本的 select 查询&#xff1a; <select id"selectCode" resultType"java.util.Ma…...

视频理解开山之作 “双流网络”

1 论文核心信息 1.1核心问题 任务&#xff1a;如何利用深度学习方法进行视频中的动作识别&#xff08;Action Recognition&#xff09;。挑战&#xff1a; 视频包含时空信息&#xff0c;既需要捕捉静态外观特征&#xff08;Spatial Information&#xff09;&#xff0c;也需要…...

每日一题——搜索二维矩阵

搜索二维矩阵 一、题目背景二、题目描述示例 1&#xff1a;示例 2&#xff1a;约束条件&#xff1a; 三、解题思路分析1. **错误思路回顾**2. **Z字形查找算法**算法步骤&#xff1a; 3. **算法优势** 四、代码实现代码说明&#xff1a; 五、测试用例测试用例 1&#xff1a;测试…...

PPT 小黑第21套

对应大猫22 动作按钮 “转到首页” 编号从1开始显示&#xff0c;点设计 -幻灯片大小 -修改幻灯片编号起始值为0&#xff08;那么第二张幻灯片页码为1&#xff09;...

大模型day01自然语言+大模型+环境

[TOC]大模型day01 自然语言处理 汉字的词是连着的&#xff0c;所以需要一个汉语处理模块&#xff0c;把词语、成语自动加空格隔开。 知识图谱构建——>从大语言文本挖掘出来 自然语言处理&#xff1a;翻译、智能语音 自然语言处理&#xff1a;理解一句话意思&#xff0c…...

VSTO(C#)Excel开发3:Range对象 处理列宽和行高

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…...

【2025】Electron + React 架构筑基——从零到一的跨平台开发

引言 源代码仓库&#xff1a; Github仓库【electron_git】 你是否厌倦了在命令行中反复输入git status&#xff0c;却依然无法直观看到文件变化&#xff1f; 是否羡慕VS Code的丝滑Git集成&#xff0c;却苦恼于无法定制自己的专属工具&#xff1f; 本专栏将为你打开一扇新的…...

AWS 如何导入内部SSL 证书

SSL 证书的很重要的功能就是 HTTP- > HTTPS, 下面就说明一下怎么导入ssl 证书,然后绑定证书到ALB. 以下示例说明如何使用 AWS Management Console 导入证书。 从以下位置打开 ACM 控制台:https://console.aws.amazon.com/acm/home。如果您是首次使用 ACM,请查找 AWS Cer…...

清华北大推出的 DeepSeek 教程(附 PDF 下载链接)

清华和北大分别都有关于DeepSeek的分享文档&#xff0c;内容非常全面&#xff0c;从原理和具体的应用&#xff0c;大家可以认真看看。 北大 DeepSeek 系列 1&#xff1a;提示词工程和落地场景.pdf  北大 DeepSeek 系列 2&#xff1a;DeepSeek 与 AIGC 应用.pdf  清华 Deep…...

【空地协同技术教程:概念与技术手段解析】

空地协同技术教程&#xff1a;概念与技术手段解析 一、空地协同的概念与核心价值 定义 空地协同&#xff08;Air-Ground Collaboration&#xff09;是指通过无人机&#xff08;UAV&#xff09;与无人车&#xff08;UGV&#xff09;等异构平台的跨域协作&#xff0c;利用各自的…...

【2025小黑课堂】计算机二级WPS精选系列20G内容(可下载:真题+预测卷+软件+选择题)

2025年3月全国计算机等级考试即将于3月29日至31日举行。为了帮助广大考生高效备考&#xff0c;小编特意收集并整理了最新版&#xff08;备考2025年3月&#xff09;的小黑课堂计算机二级WPS 电脑题库软件&#xff0c;助力考生在考试中游刃有余&#xff0c;轻松通关&#xff01; …...

蓝桥杯备赛:炮弹

题目解析 这道题目是一道模拟加调和级数&#xff0c;难的就是调和级数&#xff0c;模拟过程比较简单。 做法 这道题目的难点在于我们在玩这个跳的过程&#xff0c;可能出现来回跳的情况&#xff0c;那么为了解决这种情况&#xff0c;我们采取的方法是设定其的上限步数。那么…...

kotlin高级用法总结

Kotlin 是一门功能强大且灵活的编程语言&#xff0c;除了基础语法外&#xff0c;它还提供了许多高级特性&#xff0c;可以帮助你编写更简洁、高效和可维护的代码。以下是 Kotlin 的一些高级用法&#xff0c;涵盖了协程、扩展函数、属性委托、内联类、反射等内容。 协程&#x…...

transformers - AWQ

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

mysql下载与安装、关系数据库和表的创建

一、mysql下载&#xff1a; MySQL获取&#xff1a; 官网&#xff1a;www.mysql.com 也可以从Oracle官方进入&#xff1a;https://www.oracle.com/ 下载地址&#xff1a;https://downloads.mysql.com/archives/community/ 选择对应的版本和对应的操作系统&#xff…...

在华为设备上,VRRP与BFD结合使用可以快速检测链路故障并触发主备切换

在华为设备上&#xff0c;VRRP与BFD结合使用可以快速检测链路故障并触发主备切换。以下是VLAN接口下配置VRRP与BFD的步骤&#xff1a; 目录 1. 配置BFD会话 2. 配置VLAN接口 3. 配置VRRP 4. 验证配置 5. 保存配置 1. 配置BFD会话 在两台设备之间配置BFD会话&#xff0c;…...

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的…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...