Vim常用快捷键
这个是我的草稿本记录一下防止丢失,以后有时间进行整理
0 或功能键[Home] | 这是数字『 0 』:移动到这一行的最前面字符处 (常用) |
---|---|
$ 或功能键[End] | 移动到这一行的最后面字符处(常用) |
G | 移动到这个档案的最后一行(常用) |
nG | n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行 |
gg | 移动到这个档案的第一行,相当于 1G 啊! (常用) |
n | n 为数字。光标向下移动 n 行 |
[Ctrl] + [f] | 屏幕『向下』移动一页,相当于 [Page Down]按键 |
[Ctrl] + [b] | 屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用) |
x, X | 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用) |
:tabp | 切换到上一个编辑器 |
:tabn | 切换到下一个编辑器 |
:tabfirst | 切换到第一个编辑器 |
:tablast | 切换到末一个编辑器 |
:sp | 水平拆分编辑器 |
:vsp | 垂直拆分编辑器 |
:new | 水平拆分编辑器,并创建新的无标题文件 |
:vnew | 垂直拆分编辑器,并创建新的无标题文件 |
:only | 关闭所有的编辑器 |
gh或K | 显示悬停 |
光标的移动
普通模式 NORMAL
| w | 跳到一个单词开头 |
| b | 跳到本单词或上一个单词的开头 |
| e | 跳到本单词或下一个单词结尾 |
| ge | 跳到上一个单词结尾 |
| 0 | 跳到行首 |
| ^ | 跳到从行首开始第一个非空字符 |
| $ | 跳到行尾 |
| gg | 跳到第一行 |
| G | 跳到最后一行 |
| f{char} | 光标跳到下一个{char}所在位置 |
| F{char} | 反向移动到上一个{char}所在位置 |
| t{char} | 光标跳到下个{char}的前一个字符的位置 |
| T{char} | 光标反向移动到上个{char}的后一个字符的位置 |
| ; | 重复上次的字符查找操作 |
| , | 反向查找上次的查找命令 |
动作 motion
普通模式 NORMAL
i (inner) 和 a (around) 的区别
i不包含 a包含
| iw / aw |
| i( / a( 或 ib / ab |
| i{ / a{ 或 iB / aB |
| i" / a" |
| i’ / a’ |
| i / a
|
| i< / a< |
| i[ / a[ |
| it / at |
| is / as |
| ip / ap |
操作符
普通模式 NORMAL
| d(delete) | 删除 |
| c(change) | 修改(删除并进入插入模式) |
| y(yank) | 复制 |
| v(visual) | 选中并进入 VISUAL 模式 |
实列
-
修改 HelloWorld (ciw)
-
删除 diw
-
复制 yiw
‘HelloWorld’ -
修改泛型 ci<
-
删除泛型 di<
-
包含 括号一起删除 da<
-
删除返回值 di{ 或 diB
-
删除并修改 ci{
-
复制 yi{
-
包括括号删除 da{
{
flag,
handleSetTrue,
handSetFalse
} -
删除返回值 di( 或 dib
-
删除并修改 ci(
-
复制 yi(
-
包括括号删除 da(
(‘flag’) -
删除返回值 di[
-
删除并修改 ci[
-
复制 yi[
-
包括括号删除 da[
[1,3,4,5] -
删除返回值 di`
-
删除并修改 ci`
-
复制 yi`
-
包括括号删除 da
-
删除到 dfs => 删除d 查找f 字符s(s前面的全部删除)
vim is awesome -
删除 d^ => 删除d ^ 删除光标前面的
-
删除 d$ => 删除d $ 删除光标后面的
-
删除整个文件 die
-
删除整个文件并进入插入模式 cie
-
复制整个文件 yie
-
删除标签内的内容 dit
-
删除标签内的内容并进入插入模式 cit
dsdsdsadsadsadsadsadsadsadsadsad d dsadsad sad sad sad sad sad sa
- 可视模式 viw 进入可视 i inner w 选中一个单词 后面可以接操作符 d 删除 c修改 y复制
- 可视模式 viB 进入可视 i inner B 选中大括号{}里面的全部内容 后面可以接操作符 d 删除 c修改 y复制
切换大小写
-
~ 将光标下的字母改变大小写
-
3~ 将光标位置开始的3个字母改变其大小写
-
g~~ 改变当前行字母的大小写
-
gUU 将当前行的字母改成大写
-
guu 将当前行的字母改成小写
-
gUaw(gUiW) 将光标下的单词改成大写
-
guaw(guiw) 将光标下的单词改成小写
FFFF -
查看函数的实现及定义 gd
-
查看代码的tip 悬浮时 gh
-
切换标签页 gt下一个 后一个 gT 指定 2gt
-
转跳到侧边 Ctrl + 0
-
在不同的多标签页 Ctrl + 1…5
-
空格空格 s + 查找的字符
-
“test” => cs" ’ => ‘test’
-
“test” => ds" => test
-
“test” => cs"t 123> =>
-
ffffoo => ysiw ’ =>
-
fffff0 => ysiw < p> =>
-
多光标模式 gb 多次选中 c修改 d删除 i插入
h 左
j 下
k 上
l 右
ctrl + o 移动到上一光标位置
ctrl + i 移动到下一光标位置
行相关移动
0 行开头
^ 行开头(非空格)
$ 行尾
g_ 行尾(非空格)
词句相关移动
w 下一个词开始
W 下一个词开始(无视标点)
b 上一个词开始
B 上一个词开始(无视标点)
e 上一个词结束
E 上一个词结束(无视标点)
( 句首
) 句尾
块相关移动
{ 移动到块开始
} 移动到块结束
屏幕相关移动
ctrl + b 向上一屏幕
ctrl + f 向下一屏幕
ctrl + u 向上半屏幕
ctrl + d 向下半屏幕
H 当前屏幕第一行
M 当前屏幕中建行
L 当前屏幕最后一行
语言相关一种
gd 跳转到定义
文件相关移动
gf 跳转到文件
gg 文件头
G 文件尾
gg 第 N 行
G 第 N 行
: + 第 N 行
历史移动
g; 上一个修改位置
g, 下一个修改位置
ctrl + o 上一个跳转位置
ctrl + i 下一个跳转位置
窗口移动
ctrl + w, h 左边的窗口
ctrl + w, j 下边的窗口
ctrl + w, k 上边的窗口
ctrl + w, l 右边的窗口
ctrl + w, w 切换窗口
:bp 上一个标签
:bn 下一个标签
剪切/粘贴
d 剪切
y 复制
p 粘贴
P 粘贴到上一行
"_d 删除(不放置到剪切板)
"0p 粘贴(忽略剪切的内容)
折叠
zc 折叠代码块
zo 展开代码块
za 切换折叠
zR 展开所有
zM 折叠所有
常用功能
gu 小写转换
gU 大写转换
书签
m{a-zA-Z} 保存书签
小写的是文件书签,可以用(a-z)中的任何字母标记。
大写的是全局书签,用大写的(A-Z)中任意字母标记。
{a-zA-Z} 跳转到某个书签。 如果是全局书签,则会开启被书签标记的文件跳转至标记的行
0 跳转入现在编辑的文件中上次退出的位置 (go to last exit in file)
`` 跳转如最后一次跳转的位置
g`{mark} 跳转到书签
:delm {marks} 删除一个书签
:delm! 删除全部书签
:marks 显示系统全部书签
插件
easy-motion
<LEADER> <LEADER> s 进入跳转到字符模式<LEADER> <LEADER> j/k 进入跳转到行模式<LEADER> <LEADER> h/l 进入跳转到列模式
至标记的行
`0 跳转入现在编辑的文件中上次退出的位置 (go to last exit in file)
`` 跳转如最后一次跳转的位置
```跳转至最后一次编辑的位置
g`{mark} 跳转到书签
:delm {marks} 删除一个书签
:delm! 删除全部书签
:marks 显示系统全部书签
插件
easy-motion
<LEADER> <LEADER> s 进入跳转到字符模式<LEADER> <LEADER> j/k 进入跳转到行模式<LEADER> <LEADER> h/l 进入跳转到列模式```json
{// 关闭本地历史记录功能"workbench.localHistory.enabled": false,// LICENSE文件设置 "files.readonlyInclude": {"LICENSE": true,},"files.associations": {"LICENSE": "plaintext"},// 自动保存"files.autoSave": "afterDelay",// 自动格式化的设置"editor.formatOnPaste": true,"editor.formatOnSave": true,// 字体设置"editor.fontSize": 18,"editor.fontFamily": "JetBrains Mono, 'Courier New', monospace","editor.fontLigatures": true,// 主题设置"workbench.colorTheme": "One Dark Pro",// 启用自动猜测编码"files.autoGuessEncoding": true,// 平滑滚动和光标闪烁的设置"editor.smoothScrolling": true,"workbench.list.smoothScrolling": true,"editor.cursorBlinking": "smooth","editor.cursorSmoothCaretAnimation": "on",// 自动换行功能(但还是同一行, 视觉上效果)"editor.wordWrap": "on",// 按下回车键时如何接受代码建议的行为"editor.acceptSuggestionOnEnter": "smart",// 建议列表中如何预先选择建议"editor.suggestSelection": "recentlyUsed",// 启用自定义对话框样式"window.dialogStyle": "custom",// 控制着是否在编辑器的概览标尺中显示断点标记"debug.showBreakpointsInOverviewRuler": true,// 显示匹配的括号对"editor.guides.bracketPairs": "active",// 新建文件时的默认语言类型"files.defaultLanguage": "${activeEditorLanguage}",// 禁用推荐安装扩展的功能"extensions.ignoreRecommendations": true,// 控制编辑器在键入一行后是否自动格式化该行。"editor.formatOnType": true,// 排除指定文件或文件夹的配置"files.exclude": {".vscode": true},// 设置行号的显示格式"editor.lineNumbers": "relative",// 设置菜单栏的可见性"window.menuBarVisibility": "compact",// 设置活动栏(Activity Bar)的位置"workbench.activityBar.location": "bottom",// 禁止在资源管理器中删除文件时显示确认提示"explorer.confirmDelete": false,// 关闭欢迎页"workbench.startupEditor": "none",// Vim插件设置"vim.easymotion": true,"vim.incsearch": true,"vim.useSystemClipboard": true,"vim.useCtrlKeys": true,"vim.hlsearch": true,"vim.insertModeKeyBindings": [{"before": ["j","k"],"after": ["<Esc>"]}],"vim.normalModeKeyBindingsNonRecursive": [{"before": ["<leader>","d"],"after": ["d","d"]},{"before": ["<C-n>"],"commands": [":nohl"]},{"before": ["K"],"commands": ["lineBreakInsert"],"silent": true}],"vim.leader": "<space>","vim.handleKeys": {"<C-a>": false,"<C-f>": false,"<C-p>": false,"<C-j>": false},// "// To improve performance","extensions.experimental.affinity": {"vscodevim.vim": 1},
}
待定加入配置中
"vim.normalModeKeyBindingsNonRecursive": [{"before": [";"],"after": ["$","a",";"]}
相关文章:

Vim常用快捷键
这个是我的草稿本记录一下防止丢失,以后有时间进行整理 0 或功能键[Home]这是数字『 0 』:移动到这一行的最前面字符处 (常用)$ 或功能键[End]移动到这一行的最后面字符处(常用)G移动到这个档案的最后一行(常用)nGn 为数字。移动到这个档案的第 n 行。例…...

力扣题目汇总分析 利用树形DP解决问题
树里 任意两个节点之间的问题。而不是根节点到叶子节点的问题或者是父节点到子节点的问题。通通一个套路,即利用543的解题思路。 543.二叉树的直径 分析 明确:二叉树的 直径 是指树中任意两个节点之间最长路径的 长度。两个节点之间的最长路径是他们之…...

GO语言核心30讲 实战与应用 (第二部分)
原站地址:Go语言核心36讲_Golang_Go语言-极客时间 一、sync.WaitGroup和sync.Once 1. sync.WaitGroup 比通道更加适合实现一对多的 goroutine 协作流程。 2. WaitGroup类型有三个指针方法:Wait、Add和Done,以及内部有一个计数器。 (1) Wa…...

linux设置挂载指定的usb,自动挂载
一、设置指定的USB 在Linux系统中,如果您只想让系统挂载特定的USB设备,而忽略其他的USB设备,可以通过创建自定义的udev规则来实现。以下是设置系统只能挂载指定USB设备的基本步骤: 确定USB设备的属性: 首先࿰…...

简站WordPress主题
简站WordPress主题是一种专为建立网站而设计的WordPress模板,它旨在简化网站建设过程,使得用户能够更容易地创建和管理自己的网站。简站WordPress主题具有以下特点: 易用性:简站WordPress主题被设计为简单易用,适合各…...

is和==的关系
Python中is和的关系 is判断两个变量是不是指的是同一个内存地址,也就是通过id()函数判断 判断两个变量的值是不是相同 a [1, 2, 3, 4] b [1, 2, 3, 4] print(id(a)) # 2298268712768 print(id(b)) # 2298269716992 print(a is b) # False print(a b) # Tr…...

璩静是为了薅百度羊毛
关注卢松松,会经常给你分享一些我的经验和观点。 百度副总裁璩静离职了,网传她的年薪是1500万,而璩静在4月24日注册了一个文化传媒公司,大家都认为璩静是在为离职做准备。但松松我认为不是。 我认为:璩静成立新公司是…...

Element ui input 限制只能输入数字,且只能有两位小数
<el-form-item label"整体进度:" prop"number"> <el-input v-model"formInline.number" input"handleInput" placeholder"百分比" clearable></el-input>% </el-form-item&g…...

吃掉 N 个橘子的最少天数
代码实现: 方法一:递归——超时 #define min(a, b) ((a) > (b) ? (b) : (a))int minDays(int n) {if (n 1 || n 2) {return n;}if (n % 3 0) {if (n % 2 0) {return min(min(minDays(n - 1), minDays(n / 2)), minDays(n - 2 * (n / 3))) 1;} e…...

JavaScript 之 toString()方法详解
一、前言: 在 JavaScript 中,toString() 方法是很多数据类型内置的方法,它被用于将特定的数据类型转换为字符串。但是在不同的数据类型中的作用并非完全相同,下面就来详细讲解一下 toString() 方法在各种数据类型中的使用和作用…...

PPMP_char3
PMPP char3 – Multidimensional grids and data 五一过后,有些工作要赶,抽出时间更新一下。这一章基本都熟练掌握,在做习题过程中有一些思考。这里涉及到了一点点GEMM(矩阵乘),GEMM有太多可深挖的了&a…...

VulkanSDK Demos vkcube 编译失败
操作系统: Windows 11 23H2 Vulkan 版本: 1.3.2.280.0 Visual Studio 版本: 2022 在VulkanSDK/Demos目录下存在一个demo solution,其中包含两个project, vkcube和vkcubepp,两个分别为C语言和C写的示例程序, 但是直接编译这两个project时会编译失败,报了以下错误: fatal err…...

(二)Jetpack Compose 布局模型
前文回顾 (一)Jetpack Compose 从入门到会写-CSDN博客 首先让我们回顾一下上一篇文章中里提到过几个问题: ComposeView的层级关系,互相嵌套存在的问题? 为什么Compose可以实现只测量一次? ComposeView和…...

【Oracle impdp导入dmp文件(windows)】
Oracle impdp导入dmp文件(windows) 1、连接数据库2、创建与导出的模式相同名称的用户WIRELESS2,并赋予权限3、创建directory 的物理目录f:\radio\dmp,并把.dmp文件放进去4、连接新用户WIRELESS25、创建表空间的物理目录F:\radio\t…...

代数结构:5、格与布尔代数
16.1 偏序与格 偏序集:设P是集合,P上的二元关系“≤”满足以下三个条件,则称“≤”是P上的偏序关系(或部分序关系) (1)自反性:a≤a,∀a∈P; (2…...

如何使用DEEPL免费翻译PDF
如何使用DEEPL免费翻译PDF 安装DEEPL取消PDF限制 安装DEEPL 安装教程比较多,这里不重复。 把英文pdf拖进去,点翻译,在下面的框中有已经翻译完毕的文档。 但是存在两个问题 问题1:这些文档是加密的。 问题2:带有DeepL标…...

Spring-全面详解
Spring,就像是软件开发界的一个超级英雄,它让编写Java程序变得更简单、更灵活。想象一下,如果你要盖一栋大楼,Spring就是那个提供各种工具、框架和最佳实践的建筑大师,帮助你高效、优雅地搭建起整个项目。 Spring是啥&…...

QT自适应界面 处理高DPI 缩放比界面乱问题
1.pro文件添加 必须添加要不找不到 QT版本需要 5。4 以上才支持 QT widgets 2.main界面提前处理 // 1. 全局缩放使能QApplication::setAttribute(Qt::AA_EnableHighDpiScaling, true);// 2. 适配非整数倍缩放QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::High…...

序列到序列模型在语言识别Speech Applications中的应用 Transformer应用于TTS Transformer应用于ASR 端到端RNN
序列到序列模型在语言识别Speech Applications中的应用 A Comparative Study on Transformer vs RNN in Speech Applications 序列到序列(Seq2Seq)模型在语音识别(Speech Applications)中有重要的应用。虽然Seq2Seq模型最初是为了解决自然语言处理中的序列生成问题而设计的…...

【Linux】- Linux环境变量[8]
目录 环境变量 $符号 自行设置环境变量 环境变量 环境变量是操作系统(Windows、Linux、Mac)在运行的时候,记录的一些关键性信息,用以辅助系统运行。在Linux系统中执行:env命令即可查看当前系统中记录的环境变量。 …...

前端笔记-day04
文章目录 01-后代选择器02-子代选择器03-并集选择器04-交集选择器05-伪类选择器06-拓展-超链接伪类07-CSS特性-继承性08-CSS特性-层叠性09-CSS特性-优先级11-Emmet写法12-背景图13-背景图平铺方式14-背景图位置15-背景图缩放16-背景图固定17-background属性18-显示模式19-显示模…...

计算机字符集产生的历史与乱码
你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…...

Rerank进一步提升RAG效果
RAG & Rerank 目前大模型应用中,RAG(Retrieval Augmented Generation,检索增强生成)是一种在对话(QA)场景下最主要的应用形式,它主要解决大模型的知识存储和更新问题。 简述RAG without R…...

使用train.py----yolov7
准备工作 在训练之前,数据集的工作和配置环境的工作要做好 数据集:看这里划分数据集,训练自己的数据集。_划分数据集后如何训练-CSDN博客 划分数据集2,详细说明-CSDN博客 配置环境看这里 从0开始配置环境-yolov7_gpu0是inter g…...

机器学习第37周周报 GGNN
文章目录 week37 GGNN摘要Abstract一、文献阅读1. 题目2. abstract3. 网络架构3.1 数据处理部分3.2 门控图神经网络3.3 掩码操作 4. 文献解读4.1 Introduction4.2 创新点4.3 实验过程4.3.1 传感器设置策略4.3.2 数据集4.3.3 实验设置4.3.4 模型参数设置4.3.5 实验结果 5. 结论 …...

Baidu Comate:释放编码潜能,革新软件开发
Baidu Comate Baidu Comate,智能代码助手,凭借着文心大模型的强大支撑,结合了百度多年的编程实战数据和丰富的开源资源,形成了一款崭新的编码辅助利器。它不仅具备着高智能、多场景、价值创造的特质,更可广泛应用于各…...

MATLAB的Bar3函数调节渐变色(内附渐变色库.mat及.m文件免费下载链接)
一. colormap函数 可以使用colormap函数: t1[281.1,584.6, 884.3,1182.9,1485.2; 291.6,592.6,896,1197.75,1497.33; 293.8,596.4,898.6,1204.4,1506.4; 295.8,598,904.4,1209.0,1514.6];bar3(t1,1) set(gca,XTickLabel,{300,600,900,1200,1500},FontSize,10) set…...

使用 TensorFlow.js 和 OffscreenCanvas 实现实时防挡脸弹幕
首先,要理解我们的目标,我们将实时获取视频中的面部区域并将其周围的内容转为不透明以制造出弹幕的“遮挡效应”。 步骤一:环境准备 我们将使用 TensorFlow.js 的 Body-segmentation 库来完成面部识别部分,并使用 OffscreenCanv…...

【计算机网络篇】数据链路层(10)在物理层扩展以太网
文章目录 🍔扩展站点与集线器之间的距离🛸扩展共享式以太网的覆盖范围和站点数量 🍔扩展站点与集线器之间的距离 🛸扩展共享式以太网的覆盖范围和站点数量 以太网集线器一般具有8~32个接口,如果要连接的站点数量超过了…...

conan2 基础入门(03)-使用(msvc为例)
conan2 基础入门(03)-使用(msvc为例) 文章目录 conan2 基础入门(03)-使用(msvc为例)⭐准备生成profile文件预备文件和Code ⭐使用指令预览正确执行结果可能出现的问题 ⭐具体讲解conanconanfile.txt执行 install cmakeCMakeLists.txt生成项目构建 END ⭐准备 在阅读和学习本文…...