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命令即可查看当前系统中记录的环境变量。 …...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...

什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...

Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...