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框架,值得花时间认真学习一下,于是边学习边记录,整理成文,分享给大家,希…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
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 &…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
