vim练级攻略(精简版)
vim推荐配置:
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
0. 规定
Ctrl-λ 等价于 <C-λ>
:
command等价于:command <回车>n 等价于 数字
blank字符 等价于 空格,tab,换行,回车等
1. 命令模式 -> NORMAL
<operation> 其他 <motion>
1.0 复制
- yy 等价于 shift + y → 复制当前行
- nyy → 从本行向下,复制n行
- yw → 从光标开始复制到这个单词尾
- nyw → 从光标开始复制到n个单词尾
1.1 删除字符
x→ 删除光标所在的一个字符 s → 删除光标所在的一个字符 并 进入插入模式- X → 删除光标前一个字符
nx→ 删除光标所在的n字符- nX → 删除光标前n一个字符
dt字符→ 删除所有的内容,直到遇到字符- 比如dt"表示从当前光标开始 一直删除 直到''
1.2 查找
-
f + 字符 → 查找字符
-
df + 字符 → 从这个光标开始 一直 删除到字符结束
-
cf + 字符 → 从这个光标开始 一直 删除到字符结束 并进入插入模式
1.3 命令 → 插入模式
- i → 光标不动 并 进入插入模式
a→ 光标向后 并 进入插入模式o→ 向下新增一行 并 进入插入模式O→ 向上新增一行 并 进入插入模式cw→ 从光标位置 删除 连续字符 并 进入 插入模式(可以有多种组合)- cnw → 从光标位置 删除 连续n字符 并 进入 插入模式(可以有多种组合)
- shfit + i → 光标移动到行首 并 进入插入模式
- shift + a → 光标移动到行尾 并 进入插入模式
1.4 简单的光标移动
0→ 数字零,到行头- shift+4→ 到本行行尾
- shift+6→ 到本行第一个不是blank字符的位置
g_→ 到本行最后一个不是blank字符的位置
1.5 对文件操作
:e <path/to/file>→ 打开文件:w→ 保存文件:q!→ 退出文件 且 不保存:x,ZZ或:wq→ 保存并退出 (:x表示仅在需要时保存,ZZ不需要输入冒号并回车):saveas <path/to/file>→ 另存为<path/to/file>,还会打开这个文件:bn和:bp→ 切换文件,下一个文件,上一个文件 (n表示next,p表示prev)- :n 文件名→ 切换到这个文件
1.6 重复命令
.→ (小数点) 可以重复上一次的命令- N<command> → 重复某个命令N次
1.7 高效的光标移动
1.7. 1 按行移动
gg→ 到第一行- G → 到最后一行
- 数字+
G→ 到第 几行,或者: 数字→到第几行 - n + enter→ 向下跳几行
1.7.2 按单词移动
以默认方式(字母,数字和下划线) 为分割符
w→ 移动到下一个单词的开头。b 则表示 上一个单词的开头e→ 移动到本单词 或 下一个单词的结尾。
以blank字符为分隔符
- shift + w → 到下一个单词的开头,shift + b 则表示 上一个单词的开头
- shift + e → 移动到本单词 或 下一个单词的结尾。
1.7.3 (最强)在同一行的光标移动
从左向右 (正方向)
- f+字符→光标移动到这个字符处
- t+字符→光标移动到这个字符的前一个位置
从右向左 (反方向)
- shift + f+字符→光标移动到这个字符处
- shift + t+字符→光标移动到这个字符的后一个位置
注: 数字 + f + 字符→移动到当前的第几个字符上
注:
1.8 字符大小写转换
-
~ → 完成光标所在位置字符的大小写切换
-
n~ → 完成光标所在位置开始往后的n个字符的大小写切换
1.9 最强的光标移动
%: 匹配括号移动,包括(,{,[.(需要把光标先移到括号上)*和#: 匹配光标当前所在的单词,移动光标到下一个(或上一个)
匹配单词(*是下一个,#是上一个)
1.10 翻页
-
<C-b>→ 上翻一页 -
<C-f>→ 下翻一页 <C-u>→ 上翻半页<C-d>→ 下翻半页
1.11 替换字符
- r → 替换光标所在位置的字符
- R → 替换光标所到位置的字符,直到按下「Esc」键为止
1.12 (重要)区域选择
<action>a<object>或<action>i<object>

-
action可以是任何的命令,如
d(删除),y(拷贝),v(可以视模式选择)。 - object 可能是:
w一个单词,W一个以空格为分隔的单词,s一个句字,p一个段落。也可以是一个特别的字符:"、'、)、}、]。 <action>a<object>(包括object),<action>i<object>(不包括object),
1.13 (重要)块操作: <C-v>
1.13.1 快速注释
- 按下 ctrl+v 进入可视化模式;
- 上下键(只是上下键)移动光标,选中多行的开头;
- 按下大写的I,此时进入insert插入模式;
- 输入要插入的注释符,如:#、//;
- 按下ESC,就会看到多行代码被注释。
1.14 (重要)自动提示
<C-n>和<C-p>

-
<C-n> 表示自动补齐的下一个 <C-p> 表示自动补齐的上一个
1.15 宏录制: qa 操作序列 q, @a, @@
qa把你的操作记录在寄存器a。- q : 停止录制
- 于是
@a会replay被录制的宏。 @@是一个快捷键用来replay最新录制的宏
1.15.1实际操作->快速编号

注 : Y 等价于 yy
qaYp<C-a>q→qa开始录制Yp复制当前行,并粘贴<C-a>增加1q停止录制
先预执行一次: @a→ 在1下面写下 2重复执行多次 @@→ 在2 正面写下3- 现在做
5@@会创建新的5行,并把数据增加到 8
2. 可视化模式
v→进入单个选择V→进入行选择<C-v>→进入块选择
2.1 实际操作 -> 在所有行尾加;
<C-v>- 选中相关的行 (可使用
j或<C-d>或是/pattern或是%等……) - $ 到行最后
A+字符,按ESC。
2.2 其他操作
J→ 把所有的行连接起来(变成一行)<或>→ 左右缩进=→ 自动给缩进(非常好用)
3. 底行模式->COMMAND


- : vs+文件名:分屏操作
-
:wq→ 存盘 + 退出 (:w存盘,:q退出) :help <command>→ 显示相关命令的帮助。你也可以就输入:help而不跟命令
(退出帮助需要输入:q)- :!cmd:不退出vim执行对应的命令(执行命令行,编译,运行,查看man等等)
/pattern→ 搜索pattern的字符串(如果搜索出多个匹配,可按n键到下一个)
4. 分屏操作
4.1 分屏启动Vim

- vim -On file1 file2 ... 使用大写的O参数来垂直分屏。
- vim -on file1 file2 ...使用小写的o参数来水平分屏。
4.2 创建水平 && 垂直分屏
:split→ 创建水平分屏 等价于<C-w> +s:vsplit→ 创建垂直分屏 等价于<C-w> + v- :sp filename 上下分割,并打开一个新的文件。
- :vsp filename 左右分割,并打开一个新的文件。
4.3 关闭分屏
<C-w>c 关闭当前窗口。<C-w>q 关闭当前窗口,如果只剩最后一个了,则退出Vim。
4.3 在分屏中移动光标
-
<C-w> + dir: dir就是方向,可以是hjkl或是 ←↓↑→ 中的一个,其用来切换分屏。 -
<C-w>+ w:把光标移到下一个的屏中。
4.4 更改分屏的屏幕尺寸
<C-w>+ = : 让所有的屏都有一样的高度。<C-w>+ : 增加高度<C-w>- : 减少高度- <C-w> + _ : 最大化尺寸
5. vim改键位的操作


- vim的配置文件都在vimrc里面
- nnoremap 新按键 老按键
相关文章:
vim练级攻略(精简版)
vim推荐配置: curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh 0. 规定 Ctrl-λ 等价于 <C-λ> :command 等价于 :command <回车> n 等价于 数字 blank字符 等价于 空格,tab&am…...
一文速通Java的JDBC编程
目录 🐽JDBC的引入 什么是API JDBC的概念及作用 🍇准备工作 数据库驱动包 下载第三方库 🐾JDBC 使用 将jar包导入项目 通过代码使用JDBC的API (1)创建数据源对象并设置属性 (2)和数据库服务器建立网络连接 (3)程序构造SQL语句 (…...
laravel中请求失败重试的扩展--Guzzle
背景 开发过程中,跟外部接口对接时,很常见的要考虑到失败重新的情况,这里记录一下我用的失败重试的情况, 重试方法 1、使用 Laravel 的 HTTP 客户端和异常处理 结合异常处理和重试逻辑 use Illuminate\Support\Facades\Http;…...
如何在vue中渲染markdown内容?
文章目录 引言什么是 markdown-it?安装 markdown-it基本用法样式失效?解决方法 高级配置语法高亮 效果展示 引言 在现代 Web 开发中,Markdown 作为一种轻量级的标记语言,广泛用于文档编写、内容管理以及富文本编辑器中。markdown…...
Mysql MVCC
MVCC 什么是MVCC MVCC(多版本并发控制,Multi-Version Concurrency Control) 是一种用于数据库管理系统(DBMS)中的并发控制机制,它允许多个事务同时执行而不互相阻塞,并通过创建数据的多个版本…...
Spring6.0新特性-HTTP接口:使用@HttpExchange实现更优雅的Http客户端
文章目录 一、概述二、使用1、创建接口HttpExchange方法2、创建一个在调用方法时执行请求的代理3、方法参数4、返回值5、错误处理(1)为RestClient(2)为WebClient(3)为RestTemplate 注意 一、概述 官方文档…...
springboot医院信管系统
摘 要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代&a…...
迅为RK3568开发板篇OpenHarmony实操HDF驱动控制LED-编写内核 LED HDF 驱动程序
接下来编译 LED 驱动,该驱动用于在基于华为设备框架(HDF)的系统中控制 LED 灯的开关,完整代码如下所示: 更多内容可以关注:迅为RK3568开发板篇OpenHarmony...
[javaWeb]初识Web
将该图片在浏览器中打印出来 代码: <html> <head> <title>HTML初识</title> </head> <body> <h1>猫猫</h1> <img src "img/1.jpg"> </body> &l…...
复健第二天之[MoeCTF 2022]baby_file
打开题目在线环境可以看到: 感觉要用伪协议去求,但是我们并不知道flag的位置,这里我选择用dirsearch去扫一下: 最像的应该就是flag.php了 于是就构建payload: **?filephp://filter/convert.base64-encode/resource…...
uniapp 微信小程序 editor 富文本编辑器
<view class"inp boxsizing"><view class"contentBox"><!-- 富文本编辑器 --><view classwrapper><view classtoolbar tap"format"><view :class"formats.bold ? ql-active : " class"iconfon…...
SparkSQL函数
文章目录 1. SparkSQL函数概述2. SparkSQL内置函数2.1 常用内置函数分类2.2 常用数组函数2.2.1 array()函数1. 定义2. 语法3. 示例 2.3 常用日期与时间戳函数2.4 常见聚合函数2.5 常见窗口函数 3. SparkSQL自定义函数3.1 自定义函数分类3.2 自定义函数案例演示 1. SparkSQL函数…...
从零开始学数据库 day2 DML
从零开始学数据库:DML操作详解 在今天的数字化时代,数据库的使用已经成为了各行各业的必备技能。无论你是想开发一个简单的应用,还是想要管理复杂的数据,掌握数据库的基本操作都是至关重要的。在这篇博客中,我们将专注…...
电脑换固态硬盘
参考: https://baijiahao.baidu.com/s?id1724377623311611247 一、根据尺寸和缺口可以分为以下几种: 1、M.2 NVME协议的固态 大部分笔记本是22x42MM和22x80MM nvme固态。 在京东直接搜: M.2 2242 M.2 2280 2、msata接口固态 3、NGFF M.…...
【大数据】机器学习------支持向量机(SVM)
支持向量机的基本概念和数学公式: 1. 线性可分的支持向量机 对于线性可分的数据集 ,其中(x_i \in R^d) 是特征向量 是类别标签,目标是找到一个超平面 ,使得对于所有 的样本 ,对于所有(y_i -1) 的样本,…...
Android系统开发(八):从麦克风到扬声器,音频HAL框架的奇妙之旅
引言:音浪太强,我稳如老 HAL! 如果有一天你的耳机里传来的不是《咱们屯里人》,而是金属碰撞般的杂音,那你可能已经感受到了 Android 音频硬件抽象层 (HAL) 出问题的后果!在 Android 音频架构中,…...
Golang Gin系列-2:搭建Gin 框架环境
开始网络开发之旅通常是从选择合适的工具开始的。在这个全面的指南中,我们将引导你完成安装Go编程语言和Gin框架的过程,Gin框架是Go的轻量级和灵活的web框架。从设置Go工作空间到将Gin整合到项目中,本指南是高效而强大的web开发路线图。 安装…...
FGC_grasp复现
复现FGC_grasp 环境配置数据集准备RuntimeError: CUDA error: invalid device ordinal 问题的解决方案raise BadZipFile("File is not a zip file") zipfile.BadZipFile: File is not a zip file问题的解决方案加载数据集时总是被kill然后服务器也卡住了动不了问题的…...
实力认证 | 海云安入选《信创安全产品及服务购买决策参考》
近日,国内知名安全调研机构GoUpSec发布了2024年中国网络安全行业《信创安全产品及服务购买决策参考》,报告从产品特点、产品优势、成功案例、安全策略等维度对各厂商信创安全产品及服务进行调研了解。 海云安凭借AI大模型技术在信创安全领域中的创新应用…...
Avalonia系列文章之小试牛刀
最近有朋友反馈,能否分享一下Avalonia相关的文章,于是就抽空学习了一下,发现Avalonia真的是一款非常不错的UI框架,值得花时间认真学习一下,于是边学习边记录,整理成文,分享给大家,希…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...
【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解
一、前言 在HarmonyOS 5的应用开发模型中,featureAbility是旧版FA模型(Feature Ability)的用法,Stage模型已采用全新的应用架构,推荐使用组件化的上下文获取方式,而非依赖featureAbility。 FA大概是API7之…...
