VSCode中Vim使用(详细)

article/2025/10/7 11:58:42

文章目录

Vim基础

键映射

{/* vim */"vim.incsearch": true,"vim.useSystemClipboard": true,// "vim.hlsearch": true, 对/字符串的搜索方式来说,搜索到的结果一直高亮显示,不设置这一项美观些"vim.easymotion": true, //  启用vim-easymotion"vim.leader": "<space>", //  easymotion中,leader键映射为空格键"vim.sneak": true, // 启用vim-sneak"vim.insertModeKeyBindings": [{"before": ["j", "j"],"after": ["<Esc>"]}],"vim.normalModeKeyBindingsNonRecursive": [// 到行首^映射为H,到行尾$映射为L{"before": ["H"],"after": ["^"]},{"before": ["L"],"after": ["$"]},// easymotion快速跳转映射,s + <char>{"before": ["<leader>", "s"],"after": ["<leader>", "<leader>", "s"]},// leader+u/d 代替 Ctrl+u/d 使页面向上/下滚动半屏{"before": ["leader", "u"],"after": ["<C-u>"]},{"before": ["leader", "d"],"after": ["<C-d>"]},// 删到行首/行尾  暂时只能用leader + H/L,若dH/L会删除此处到代码开头/结尾{"before": ["leader", "H"],"after": ["d", "^"]},{"before": ["leader", "L"],"after": ["d", "$"]}],// 可视模式"vim.visualModeKeyBindingsNonRecursive": [{"before": ["H"],"after": ["^"]},{"before": ["L"],"after": ["$"]}],"vim.useCtrlKeys": true, //结合下面的"vim.handleKeys"配置"vim.handleKeys": {"<C-a>": false,"<C-f>": false,// 带有vim插件的vscode,它的Ctrl+w是由vscode控制,非vim插件扩展快捷键控制。若改为true,则就是了。"<C-w>": false}
}

模式

普通模式 Normal 插入模式 Insert 可视模式 Visual 命令模式 : 替换模式Replace在这里插入图片描述
:若配置了"vim.sneak": true则s与S就不起作用

光标移动

字符单词跳转句和段
h 左w下一个单词开头0 行首f char 跳到char位置( 到句首
j 下b本单词或上一个单词开头^ 行首非空字符F char 反向) 到句尾
k 上e本单词或下一个单词结尾$ 行尾t char char前一位置{ 到段首
l 右ge上一个单词结尾gg 首行T char char后一位置} 到段尾
W长单词 E长单词 B长单词G 尾行; 重复上次的跳转
ngg 第n行, 反向查找上次的查找

% 移动到与光标所在括号相对应的另一半括号上(对小括号,中括号和大括号有用,尖括号无用)
:比较的全面,但是看每个人的习惯不同,惯用的就会不同。上述是普通模式和可视模式的光标移动,它们完全一致,由于插入模式下的光标移动快捷键和很多VSCode内置快捷键冲突,这里就不介绍了,在文章末尾有写

方便编辑和阅读代码的操作如下(不仅仅限于光标移动,包含tricks等)

类型1
zt 屏幕滚动使得当前行成为屏幕的最上面一行
zz 中间一行
zb 最下面一行
zc 关闭代码块
zo 打开代码块
za 打开或关闭代码块

类型2
Ctrl + 0:跳转到侧边栏,并可以用jk上下移动,空格打开文件或者文件夹
Ctrl + 2:增加一个工作区栏,以此类推,Ctrl + 1:跳到第一个工作区栏
Ctrl + N:新建文件 Ctrl + Shift + N:新建文件夹(这两个在Settings -> Keyboard Shortcuts -> 搜索explorer.new -> 自定义
l:从侧边栏回到未跳转前的文件工作区,或者新打开的文件工作区
gt(go to tab):跳到下一个标签页
gT(go to tab):跳到上一个标签页
ngt(go to tab):跳到第n个标签页

类型3
gh(go to hover):悬浮查看一些文档,签名
gd(go to destination):跳转到定义声明或具体描述的地方
Ctrl + o:回到跳转之前的地方 Ctrl + i:与之相反
gb:光标置于单词的任意位置,输入一个gb,就选中一相同的单词(想选中4个相同的单词就连续输入gb4次
==:格式化代码
gcc:注释本行代码
gcnj/ngcj:注释从本行和下方n行的代码
gcnk/ngck:注释从本行和上方n行的代码

编辑技巧

操作符opertator 4个
d 剪切(delete)
x 剪切光标所停留的那个字符 X 剪切光标所停留的前一个字符
c 删除并进入插入模式(change)
y 复制(yink)
介词 2个
i 表示里面
a 表示外面
名词 9个
光标移动之字符 h j k l
光标移动之单词 w b e…
光标移动之行 ^ $ ngg…
光标移动之跳转 f F …
光标移动之句段 ( {
( { [’`" 各种括号引号
t 标签
a 全部
e 全文

公式1:操作符

dd:剪切一行 3dd/d3d:剪切包括本行在内的三行 以此类推

公式2:操作符 + 名词(前五个)

3dh/d3h:剪切光标所停留字符的左三个字符 3dj/d3j:剪切光标所在行及下面三行
db:剪切光标所停留单词到开头
dngg:剪切本行到第n行
dfn:剪切到当前行到下一个n字符
d{:剪切到段落开头

公式3:操作符 + 介词 + 名词(重点后四个)

diw 剪切当前光标所停留单词,或输入gbw
di(:删除( )中的所有内容
da(:删除( )中同时包括( )的所有内容
dit:剪切标签对中的内容,不包含标签对
dat:剪切标签对中的内容,包含标签对
yia:这个我试了以下,在for…in和for…of里面可以复制,其它的暂且不知
yie:复制全文

其它操作符及编辑技巧 6个
rx 用字符x替换光标位置的字符 nrx 用x字符替换光标位置前的n个字符 R 进入替换模式
p 粘贴到当前光标的右边/下一行 P 粘贴到当前光标的左边/上一行 np(nP) 重复粘贴内容n次
<< 向前缩进
>> 向后缩进
u 撤销操作
. 再次执行刚执行过的命令

:上述展示的都是很常用的Vim普通模式下的编辑技巧

常用命令

相信尝试过上述的Vim基础后,用一段时间的你,一定能够掌握好适合的常用命令

小技巧

  1. Ctrl 键有时候可以用小拇指指根摁
  2. VSCode内置的 Alt + ↑/↓ 将当前行或者块(visualmode选择即可)上/下移
  3. 大写字母可以使用 Shift + 字母

自带插件

vim-easymotion:Vim插件介绍里vim-easymotion有详细说明,常用的有以下(键映射中有)在这里插入图片描述

vim-surround:同上,可以自己尝试,以下例子

Old text                  Command     New text
Hello world               vS"         "Hello world"
"Hello world"             ds"         Hello world
Hello world               ysiw[       [ Hello ] world
Hello world               ysiw]       [Hello] world
[Hello] world             cs]"        "Hello" world"Look ma, I'm *HTML!"     cs"<q>      <q>Look ma, I'm HTML!</q>
<div>Yo!*</div>           dst         Yo!
<div>Yo!*</div>           cst<p>      <p>Yo!</p>

vim-sneak:同上,和easymotion有些像,但是有自己的方便之处

其他

切换大小写

~ 将光标下的字母改变大小写
3~ 将光标位置开始的3个字母改变其大小写
g~ 改变当前行字母的大小写,
gUU 将当前行的字母改成大写
guu 将当前行的字母改成小写
gUaw或gUiw 将光标下的单词改成大写
guaw或gUaw 将光标下的单词改成小写

其它跳转方式

/string,n下翻查询结果,N上翻查询结果,enter跳转(string代表你想查找的内容)

插入模式下的光标移动

个人习惯是,在插入模式下且移动的范围很小的时候,选择性的使用插入模式下的光标移动,它的原生vim中的快捷键如下(不过很多与VSCode内置快捷键是冲突的,我是直接使用↑/↓/←/→新手使用Vim先适应模式切换,暂且不用插入模式下的光标移动可能更锻炼一些)

快捷键作用
Ctrl + pup
Ctrl + ndown
Ctrl + bleft
Ctrl + fright
Ctrl + a到行首
Ctrl + e到行尾
Ctrl + hdelete 1
Ctrl + wdelete back 1 word
Ctrl + udelete back to start of line

屏幕滚动

原生vim的快捷键如下

快捷键功能
Ctrl + v向上滚屏
Ctrl + e向下滚屏
Ctrl + u向上滚半屏
Ctrl + d向下滚半屏
Ctrl + b向上滚整屏
Ctrl + f向下滚整屏

参考链接

All About Vim

新手如何正确入门vim?

在VSCode中使用Vim的正确方式

指尖飞舞:vscode + vim 高效开发(系列视频)

vim常用命令总结 (转)

vscode和chrome使用vim

vim中的杀手级插件: surround

非常感谢!!!


http://chatgpt.dhexx.cn/article/Pg4gYxnP.shtml

相关文章

【Linux】Linux编辑器—vim使用

目录 1.vim的基本概念2.vim基本操作3.vim命令模式命令集4.vim末行模式命令集5.简单vim配置6.使用sudo提权7.关闭vim时使用 ctrl z 退出怎么解决&#xff1f; 为什么要学习vim&#xff1f; “在 Linux 系统中一切都是文件&#xff0c;而配置一个服务就是在修改其配置文件的参数…

Linux-vim使用

目录 基本vim的基本操作&#xff1a; 命令模式&#xff1a; 光标定位&#xff1a; $&#xff1a;光标定位到行右&#xff1a; ^&#xff1a;光标定位到左&#xff1a; shiftgG&#xff1a;光标定位到底部 gg&#xff1a;回到顶部 nshiftg表示跳转光标到第n行 文本复制相关…

VIM使用教程-详细

先上一张图&#xff1a; 导语 VIM 是 Linux 系统上一款文本编辑器&#xff0c;它是操作 Linux 的一款利器。 当前有很多优秀的 IDE 都支持安装 VIM 插件&#xff0c;原因就是使用它便捷&#xff0c;高效&#xff0c;很爽&#xff01; 本文主要记录了 VIM 的一些常用使用技巧&am…

Vim使用

vim的三种模式&#xff1a; 命令模式、文本模式 、末行模式。 进入文本模式的各种方式&#xff1a; i 进入文本模式&#xff0c;光标前插入字符 a 进入文本模式&#xff0c;光标后插入字符 o 进入文本模式&#xff0c;光标所在行的下一行插入 I 进入文本模式&#xff0c;光标所…

vim使用(全集)

希望对大家有帮助&#xff0c;文档做过修改。 1、辑模式&#xff1a; 在一般模式中可以进行删除、复制、粘贴等的操作&#xff0c;但是却无法编辑文件的内容&#xff0c;只有当到你按下【i, I, o, O, a, A, r, R】等任何一个字母之后才会进入编辑模式。这时候屏幕的左…

vim使用教程图文教程(零基础超详细)

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 vim编辑器使用教程 1. 三种模式2. 三种打开方式3. 命令模式3.1 移动光标3.2 搜索替换3.3 复制粘贴删除 4. 编辑模式5. 末行模式 vim是Linux系…

MATLAB——偏最小二乘回归算法

设有q个因变量{y1,y2...yq}和p个自变量{x1,x2...xp}。为了研究因变量和自变量的统计关系&#xff0c;观测n个样本点&#xff0c;构成了自变量与因变量的数据表X 和Y 。部分最小二乘回归分别在X和Y中提取成分和,他们分别是x1,...,xp和y1,...,yq的线性组合。提取这两个成分有以下…

【数学建模】最小二乘回归+Java代码实现

文章目录 一、最小二乘法的历史二、最小二乘法的原理三、最小二乘法的公式四、Java代码实现最小二乘法五、输出预测结果 一、最小二乘法的历史 1801年&#xff0c;意大利天文学家朱赛普皮亚齐发现了第一颗小行星谷神星。经过40天的跟踪观测后&#xff0c;由于谷神星运行至太阳…

【计量模型整理】偏最小二乘回归 PLS

partial least square PLS 原理与MLS、PCR、MRA比较适用情况数学推导与软件实现参考文献 原理 在影响因变量的大量的因素中&#xff0c;会存在隐形的影响因素但却具有很强的解释力&#xff0c;PLS的基本思想是提取这些隐性因素去代表尽可能多的变量来解释因变量。因而PLS也被称…

MATLAB中的偏最小二乘回归(PLSR)和主成分回归(PCR)

通过Matlab示例来解释偏最小二乘的原理 此示例显示如何在matlab中应用偏最小二乘回归&#xff08;PLSR&#xff09;和主成分回归&#xff08;PCR&#xff09;&#xff0c;并讨论这两种方法的有效性。 当存在大量预测变量时&#xff0c;PLSR和PCR都是对因变量建模的方法&#…

数学建模之偏最小二乘回归分析

EverydayOneCat 💯💯! 知识点 1.偏最小二乘回归介绍 偏最小二乘回归(PLS-Partial Least Squares)是一种新型的多元统计数据分析方法,是一种多因变量对多自变量的回归建模方法,是对最小二乘方法的推广。 优点: 1)提供了一种多因变量对多自变量的回归建模方法; 2)…

傻瓜攻略(十二)——MATLAB实现偏最小二乘回归PLS

这一定是一篇真正的傻瓜攻略&#xff0c;原理为根&#xff0c;算法为骨&#xff0c;应用为肉&#xff0c;傻瓜为皮。 本文主要介绍偏最小二乘回归的基本实现&#xff0c;主要内容基于司守奎《数学建模算法与应用》第11章&#xff0c;在其基础上进行优化。 偏最小二乘回归分析 …

R语言 偏最小二乘回归PLS代码

导入数据集&#xff0c;标准化变量 library(pls) #读取数据赋值 df read.csv("soil.csv") y scale(df$soil.som) #标准化 x scale(df[,2:50]) #标准化 soil.plsr plsr(y~x,validation "CV") #使用交叉验证确定主成分 summary(soil.plsr) plot(RMS…

MATLAB数值分析学习笔记:线性最小二乘回归

目录 问题引入 数学描述 数学实现 最大似然原理&#xff08;The Principle of Maximum Likelihood&#xff09; 代码实现 问题求解&#xff1a; 非线性关系的线性化 问题求解 代码实现 结果 内置函数 示例&#xff08;求解“问题引入”&#xff09; 练习题&#xff…

R语言实现偏最小二乘回归法 partial least squares (PLS)回归

偏最小二乘回归是一种回归形式 。 当使用pls时&#xff0c;新的线性组合有助于解释模型中的自变量和因变量。 最近我们被客户要求撰写关于偏最小二乘回归的研究报告&#xff0c;包括一些图形和统计输出。 在本文中&#xff0c;我们将使用pls预测“收入”。 library(Ecdat…

偏最小二乘回归 Matlab

什么是偏最小二乘回归&#xff1f; 偏最小二乘回归&#xff08;英语&#xff1a;Partial least squares regression&#xff0c; PLS回归&#xff09;是一种统计学方法&#xff0c;与主成分回归有关系&#xff0c;但不是寻找响应变量和自变量之间最大方差超平面&#xff0c;而…

偏最小二乘回归预测(MATLAB源码)

偏最小二乘回归&#xff08;英语&#xff1a;Partial least squares regression&#xff0c; PLS回归&#xff09;是一种统计学方法&#xff0c;与主成分分析有关系&#xff0c;但不是寻找响应变量和自变量之间最大方差的超平面&#xff0c;而是通过投影分别将预测变量和观测变…

MATLAB-偏最小二乘回归分析

偏最小二乘回归提供一种多对多线性回归建模的方法,特别当两组变量的个数很多,且都存在多重相关性,而观测数据的数量(样本量)又较少时,用偏最小二乘回归建立的模型具有传统的经典回归分析等方法所没有的优点。 偏最小二乘回归分析在建模过程中集中了主成分分析,典…

MATLAB实现偏最小二乘回归PLS

这一定是一篇真正的傻瓜攻略&#xff0c;原理为根&#xff0c;算法为骨&#xff0c;应用为肉&#xff0c;傻瓜为皮。 本文主要介绍偏最小二乘回归的基本实现&#xff0c;主要内容基于司守奎《数学建模算法与应用》第11章&#xff0c;在其基础上进行优化。 偏最小二乘回归分析 …

第10章 最小二乘线性回归分析

目录 10.1简单线性回归分析 1.描述性统计分析 2.对数据进行相关性分析 3.对数据进行回归分析的结果 4.变量的方差-协方差矩阵 5.对变量系数的假设检验结果 6.对因变量的拟合值的预测 7.回归分析得到残差序列 案例延伸 1.在回归方程中不包含常数项 2.限定参与回归的样…