Vim 笔记

这可是全网网工数通方向学习路线最完整,最详细的版本,没有之一 文章篇幅较长,耐心看完你一定有所收获。 阅读详情


  Vim总共分为普通模式、插入模式(insert)、替换模式(replace)、可视模式(visual)、命令模式。Vim启动后即进入普通模式,在其它模式下,按 Esc可退回到普通模式。

普通模式

普通模式下命令可分为以下三类:

  • 光标命令
    指移动光标的命令。有以下特性:
    • 输入这些命令前,可以先输入一个数字,用来指定连续执行的次数。如:<command><command><command>等价于3<command>。
    • 这些命令可以作为含参命令的参数,用来指定含参命令的作用范围。
  • 立即命令
    指按下命令键后,无需再输入参数,便立即做出反应的命令。有以下特性:
    • 同光标命令,在输入前可输入一个数字。
  • 含参命令
    指按下命令键后,需要再输入参数,才能做出反应的命令。有以下特性:
    • 同光标命令,在输入前可输入一个数字。
    • 后跟参数可为光标命令(记作<end_position>),记当前光标位置为<start_position>,则该命令作用范围是<start_position>至<end_position>。
    • 后跟参数也可为该命令的重复,此时作用范围为光标所在的一行。

光标命令

字符级移动

命令含义
h向左移动
j向下移动
k向上移动
l向右移动

单词级移动

命令含义
w或 W移动至下一个单词的第一个字符处
b或 B移动至光标所在单词的第一个字符处;若已在此处,则移动至上一个单词的第一个字符处
e或 E移动至光标所在单词的最后一个字符处;若已在此处,则移动至下一个单词的最后一个字符处

W、B、E以不可见字符( \s)作为划分单词的依据;w、b、e以非单词字符( \W即 [\^0-9a-zA-Z_])作为划分单词的依据。

行级移动

命令含义
0移动至本行行首
$移动至本行行尾
^移动至本行第一个非空字符
+移动至下一行行首
-移动至上一行行首

文段级移动

命令含义
(移动至当前句子开头;若已在此处,则移动至上一句的开头
)移动至当前句子结尾;若已在此处,则移动至下一句的开头
{移动至当前段落开头;若已在此处,则移动至上一段的开头
}移动至当前段落结尾;若已在此处,则移动至下一段的结尾

屏幕级移动

命令含义
H移动至本屏首行行首
M移动至本屏中间一行的行首
L移动至本屏尾行行首

文件级移动

命令含义
gg移动至文件首行行首
G移动至文件尾行行首
4G移动至文件第四行行首

屏幕行移动

当某行的字符数过多,为适应屏幕宽度而回绕时,该行在屏幕上占据两行;实际上占据一行。

命令含义
gj移动至上一屏幕行
gk移动至下一屏幕行
g0移动至本屏幕行行首
g$移动至本屏幕行行尾
g^移动至本屏幕行第一个非空字符处

匹配移动

命令含义
*移动至与光标所在单词相匹配的下一个单词
#移动至与光标所在单词想匹配的上一个单词
%移动至另一个括号符(支持的括号符为 ( ) [ ] { } )

查找式移动

命令含义
/向后查找
?向前查找
n若有多项符合查找要求,按此键则移动至下一项
N若有多项符合查找要求,按此键则移动至上一项

拷贝、剪切和粘贴

下表中除y和d外其余皆为立即命令

命令含义
y拷贝(含参命令)
Y拷贝当前行
d剪切(含参命令)
D从当前光标位置起剪切至行尾
x剪切光标处字符
X剪切光标前字符
p向后粘贴
P向前粘贴

  现对含参命令进行举例。根据含参命令的特性可知:yy等价于Y;y$表示拷贝从光标位置至行尾的内容;y4e表示拷贝从光标位置开始至其后的第4个单词结尾的内容。
  Vim 支持将拷贝或剪切的内容存入一个变量(a至z)中,在需要的时候从某个变量中取出粘贴。使用变量时需先输入"声明变量,如:"aY表示拷贝当前行的内容放入变量a中;"bp表示向后粘贴变量b中的内容。

缩进

命令含义
>缩进(含参命令)
<反缩进(含参命令)

大小写转换

命令含义
gu转为小写(含参命令)
gU转为大写(含参命令)

合并

命令含义
J将当前行与下一行合并

撤销

命令含义
u撤销上一次操作
U撤销对当前行的所有操作

标记点

命令含义
m声明标记点
\` 跳转到标记点
'跳转到标记点的行首

  Vim支持26个局部标记点(a至z)和26个全局标记点(A至Z),局部标记点仅限于当前文件内,全局标记点可跨文件跳转。如:ma表示将当前光标处声明为局部标记点a;\`a表示跳转到标记点a处,'A表示跳转到全局标记点A处的行首(可能发生文件跳转)。

保存和退出

命令含义
ZZ不保存退出
ZQ保存退出

屏幕视图切换

命令含义
zt将光标所在行滚动至屏幕顶端
zz将光标所在行滚动至屏幕中间
zb将光标所在行滚动至屏幕底端
Ctrl + f向上翻页
Ctrl + b向下翻页
Ctrl + e向上滚动一行
Ctrl + y向下滚动一行

插入模式

下表中除c外其余皆为立即命令

命令含义
i在当前位置的左侧插入
a在当前位置的右侧插入
I在当前行行首插入
A在当前行行尾插入
o在当前行之下插入新一行
O在当前行之上插入新一行
s删除当前字符并插入
S删除当前行并插入
c删除并插入(含参命令)
C删除从光标开始至行尾的内容并插入

替换模式

命令含义
r替换当前字符
R进入替换模式

命令模式

保存和退出

命令含义
:w保存
:w!强制保存(应用于只读文件,且用户有修改权限)
:q退出
:q!强制退出(退出且不保存修改时)
:wq保存并退出
:wq!强制保存并退出(应用于只读文件,且用户有修改权限)

设置

命令含义
:set nu显示行号
:set nonu不显示行号

查找和替换

命令含义
/<regular_expression>查找(<regular_expression>为正则表达式,此时按n光标移动到下一匹配项;按N光标移动到上一匹配项)
:s/<regular_expression>/<string>将当前行第一个匹配项替换为<string>
:s/<regular_expression>/<string>/g将当前行所有匹配项替换
:%s/<regular_expression>/<string>将各行第一个匹配项替换
:%s/<regular_expression>/<string>/g将全文所有匹配项替换
YOLOv8推理程序 YOLOv8单独推理,有时候我们自定义的模块算子无法正常转换为其他框架,而且需要做成应用,因此需要一个单独推理的程序,返回的是识别后的照片还有各个类别及其对应数量。文章最后给出Flask封装为Server以及调用的实例还有Client请求代码,支持几十路多线程并发,只需加载一次模型,后边推理即可。 阅读详情

相关推荐

学习Ultralytics (下载)

Ultralytics由创立,最初是为了简化目标检测模型的开发和应用,专注于构建高效、易用、性能卓越的深度学习框架。其主要产品之一是 YOLO 系列模型,尤其是最新的YOLOv5和YOLOv8,因其在精度、速度和可扩展性方面的出色表现而广受欢迎。

2301_76846375的博客 2865

使用Vim轻松记笔记

使用Vim轻松记笔记 在Vim文本编辑器中高效管理你的笔记,这已成为可能。vim-notes 插件为你带来了这样的体验: 项目介绍 vim-notes 是一个强大的插件,它让你在Vim中创建、编辑和组织笔记变得易如反掌。通过简单的命令行操作,你可以快速启动新笔记,利用标题自动保存文件,并在现有笔记之间轻松跳转。 项目技术分析 这个插件充分利用了Vim的内在功能,例如: 使用:Note命令快捷创建...

gitblog_00038的博客 684

TCP协议中ARQ自动重传的三种实现方式对比(含SACK详解)

本文深入解析TCP协议中ARQ自动重传的三种实现方式,包括停止-等待、回退N步和选择重传协议,特别详细介绍了SACK机制的工作原理和优势。通过对比分析各协议的效率、复杂度和适用场景,为网络通信中的可靠性传输提供了实用的选型指南。

weixin_30776273的博客 462

vim 笔记

vim 笔记 instinct 2019-02-21 17:18:51 Vim具有6种基本模式和5种派生模式,我们这里只简单介绍下6种基本模式: 普通模式(Normal mode) 在普通模式中,用的编辑器命令,比如移动光标,删除文本等等。这也是Vim启动后的默认模式。这正好和许多新用户期待的操作方式相反(大多数编辑器默认模式为插入模式)。 Vim强大的编辑能来自于其普通模式命令。普通模式...

fan_music的博客 226

QT使用openssl实现RSA加解密

使用openssl生成公私钥,随后用QT对相应的信息进行RSA加解密

weixin_42098322的博客 3867

STM32F103C8T6+HX711实战:从零打造智能体重秤(附OLED显示与语音播报)

本文详细介绍了基于STM32F103C8T6微控制器和HX711称重模块,从零构建智能体重秤的完整实战教程。内容涵盖硬件选型、系统架构、驱动编写、数据滤波校准算法,并实现了OLED显示与语音播报功能。该项目是嵌入式学习的综合性实践,尤其适合作为毕业设计课题,帮助开发者掌握传感器应用、数据处理及人机交互等核心技能。

weixin_28285943的博客 518

LaTeX+Vim 数学笔记

又出现一位“神仙”本科生! 数学课上,全程键盘手打1700页笔记。 速度紧追老师板书,公式、图形一个不落。 效果?请看下图: 不仅排版媲美教科书,而且还能够批注,检索关键词…… 笔记被他Po到网上之后,便引来大量围观。 不到一天,相关推文就已经有2000多赞,Hacker News论坛上盖了200多楼。 甚至有网友评论称:“你就是我们需要的英雄!” 他是怎么做...

wzq2009的专栏 1370

用VASPKIT+Quantum Espresso高效绘制能带图:从K点路径生成到可视化全流程

本文详细介绍了如何整合VASPKIT与Quantum Espresso(QE)软件,构建一套高效的能带计算与可视化工作流。通过VASPKIT自动化生成高对称K点路径,结合QE完成自洽与非自洽计算,并利用gnuplot绘制发表级能带图。该流程极大提升了材料电子结构研究的效率与可重复性,是进行DFT能带计算的实用指南。

weixin_29294975的博客 163

探索高效笔记新境界:simplenote.vim —— Vim的Simplenote插件

探索高效笔记新境界:simplenote.vim —— Vim的Simplenote插件 项目介绍 simplenote.vim是一个专为Vim爱好者设计的插件,它允许您直接在Vim内与Simplenote服务进行交互,实现无缝的笔记创建、管理和同步。如果您是Vim的忠实用户,并且喜欢用简洁的方式做笔记,那么这个开源项目绝对值得尝试。 项目技术分析 该插件利用[Vimscript]和Python(...

gitblog_00087的博客 678

硬件即代码:用软件工程思维拆解F450无人机装配的模块化设计哲学

本文探讨了如何用软件工程思维重构DJI-F450无人机的模块化设计,将硬件装配提升为可编程系统。通过硬件抽象层、控制系统分层架构和扩展槽位设计模式,展示了无人机装配的模块化哲学,并结合实际案例说明如何优化性能与安全性。

weixin_29294975的博客 387

VS2019项目使用CGAL6.1配置教程详细步骤

在VS2019项目中使用CGAL详细步骤

插件开发 331

vim笔记

m0_68339197的博客 479

Mac mini M2 部署 OpenClaw:最稳 7×24 本地 AI 服务器

Mac mini M2 凭借其强大的 M2 芯片、低功耗和静音特性,成为部署 OpenClaw AI 服务器的理想平台。本文详细介绍了从系统配置到 OpenClaw 部署的全过程,包括 Docker 环境搭建、docker-compose 编排、性能优化方案以及开机自启设置。通过统一内存架构和高效 SSD,M2 版 Mac mini 在 AI 推理速度上显著优于前代产品,同时保持极低的功耗(仅 8W),适合 7×24 小时稳定运行。部署方案充分利用了容器化技术,确保了服务的可靠性和可维护性。

一键难忘的博客 2954

VIM学习笔记

vim中,按:触发的命令行模式,称为 ex模式,具体命令参见如下笔记:文章浏览阅读816次。本文出自 http://blog.youkuaiyun.com/shuangde800本文是在学习《使用vi编辑器, Lamb & Robbins编著》时在evernote写的其中一章笔记,现在整理好,一方面温故而知新,一方面希望对大家能有些帮助。ex的命令在vim编程中都是非常常用的,熟练这些命令对于提高编程效率有很大的帮助。主要内容:_vim ex命令。

stanleyrain的博客 1220

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Linux关于vim的笔记

在两行内替换所有的字符串 old 为新的字符串 new,请输入 :#,#s/old/new/g。2. :w FILENAME 可将当前 VIM 中正在编辑的文件保存到名为 FILENAME 的文。在文件内替换所有的字符串 old 为新的字符串 new,请输入 :%s/old/new/g。在一行内替换所有的字符串 old 为新的字符串 new,请输入 :s/old/new/g。4. 在一行内替换头一个字符串 old 为新的字符串 new,请输入 :s/old/new。 放弃所有改动。

yangchuang111213的博客 458

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

SQLAlchemy Column Elements and Expressions:SQL 表达式 API 完全指南

本篇技术指南以 SQLAlchemy 官方文档 [sqlelement.rst](https://link.gitcode.com/i/ec22345cf8e9b180d7cede787dfda5df) 为骨架,系统讲解表达式 API(Expression API)的类层次、全部构造器函数、核心列表达式类与类型检查工具,并结合当前仓库源码([lib/sqlalchemy/sql/_elements

gitblog_00113的博客 498

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Vim 编辑器学习笔记

vi编辑器是由比尔·乔伊(Bill Joy)在 1976 年为 UNIX 操作系统开发的一款文本编辑器,最早应用于 UNIX 系统的 BSD 版本中。它凭借轻量、快速、功能丰富的特点,迅速成为 UNIX 和类 UNIX 系统(如 Linux)用户最喜爱的编辑工具之一。然而,随着编辑需求的提升,vi的功能逐渐显得不足。1988 年,布莱姆·穆伦纳尔(Bram Moolenaar)在vi的基础上创建了vim编辑器,全称 “Vi IMproved”,即“改进版vivim不仅保留了vi。

vortex5的博客 1618

vim学习笔记

[size=x-large][b]关于vim的一些学习笔记[/b][/size] Vim的100command

小轮子 153

Vim制作超简单笔记本

平常学习技术,需要记录一些内容,txt显得太过单调而且不宜观看,word又太慢,所以自己写了一个很简单的Vim插件用来写笔记,只需要在$VIM\vimfiles\syntax($VIM 换成你的Vim安装目录)添加nt.vim. 在nt.vim内添加 syntaxmatchtitle"^\S.*"highlighttitlegui=boldguifg=...

weixin_34239592的博客 211

【亲测免费】 Zettelkasten.nvim:基于Vim的笔记管理插件

Zettelkasten.nvim:基于Vim的笔记管理插件 Zettelkasten.nvim 是一个基于 Vim 的哲学理念的笔记管理插件,使用 Lua 语言开发。它旨在利用 Vim 的强大功能,为用户提供一个文本基础的笔记系统,帮助用户高效地组织、查询和链接笔记。 核心功能 创建带唯一ID的新笔记:用户可以通过命令 :ZkNew 创建新的笔记,每个笔记都会自动分配一个唯一的ID,便于管理和...

gitblog_00502的博客 355

Vim操作笔记

注:本篇文章是追加笔记,用于记录自己的常用操作。

hongyeying的专栏 950

探索高效记笔记的新维度:VIM键绑定为OneNote

探索高效记笔记的新维度:VIM键绑定为OneNote 在数字时代的海洋中,效率和组织能力是我们前行的灯塔。而VIM Keybindings for OneNote这个开源项目,正是将这两个元素完美融合的一座桥梁。它将著名的VIM编辑器的快捷键带入了Microsoft OneNote的界面,让我们的笔记管理变得更加流畅和高效。 项目介绍 该项目基于AutoHotKey脚本语言开发,提供了预编译的可执...

gitblog_00009的博客 512

Vim使用笔记

(9)sp(垂直分屏)、vsp(水平分屏)、ctrl+w(切换窗口)、ctrl+w+hjkl(切换窗口)、q(关闭当前窗口)、only关闭所有仅保留当前、w(保存当前窗口)、wq(保存退出当前窗口)、wqa(保存退出所有窗口)(4)yy(复制)、p(粘贴当前行下一行)、n+yy(复制n行)、n+p(在当前行下粘贴n份)(3)进入方式v(字符操作)、shift+v=V(行操作)、ctrl+v(块操作)(5)dd(剪切,无粘贴等于删除)、n+dd(剪切n行)(2)y(复制)、x(删除)、d(剪切)

weixin_69040552的博客 463

vim 学习笔记系列(前言)

今天上午的时候,看到大神在用vim编程,画面直观,速度很快,操作只需要用命令符就可以实施。 所以可以推断vim的命令符是复杂的,那么学习过程中记忆会很漫长,很痛苦,但是如果记住了这些命令符,并可以熟练的使用,那么便可以放弃鼠标的使用,从而提高了效率。 一般人一直是用的比较直接的Eclipse Xcode之类的软件,习惯了,就觉得在编辑的过程中还要输入新的command,觉得是很

玮哥的博客 2498

Vim基础学习笔记

目录前言总述普通模式输入模式命令模式可视模式插件修改vim配置 前言 接触了许久的Ubuntu,但是发现自己只会一点点皮毛的vim操作,于是去b站找了一下vim的教程,系统的学习了一下,特此做下笔记 总述 #mermaid-svg-t54mZQ99WsqpfOkF {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-t54mZQ99WsqpfOkF .error-icon{fi

scarecrow_sun的博客 921

Vim 替换命令完整学习笔记

Vim的替换命令是文本处理的利器,掌握好正则表达式和分组引用是关键。记住"先查找,后替换,多测试,备份文件"的安全原则!Vim 的替换命令是其最强大的功能之一,基于强大的正则表达式系统,可以进行精确的文本查找和替换操作。字符时,使用其他分隔符避免转义。

面朝大海 2418
上一篇: Linux 命令行
下一篇: Linux FHS
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值