VS Vim入门学习

目录

一、在vscode上安装vim插件

二、基础概念

1.模式:

2.光标上下左右:

三、光标定位进阶

1.行内光标定位

2.词汇定位

3.单词匹配

4.括号匹配

四、插入

五、查找

六、替换

七、粘贴

八、拷贝

九、删除

十、其他常用操作

1、重复之前的命令

2.全选(复制/删除)

3.代码缩进

4.撤销/取消撤销修改


今天(2019/12/06)开始正式学习vim,俗话说磨刀不误砍柴工,用好工具势必能够提升自己的编程效率。

本文将对vim的基础操作进行学习,并且结合示例进行讲解。

方便日后复习可以快速回忆,当然最好是日后已经养成肌肉记忆啦。哈哈哈哈(#^.^#)

一、在vscode上安装vim插件

easy:

按下左侧extensions-》在搜索框输入vim-》点击下图第一个选项的install(我已经安装好了)

安装结束后就可以使用 vscode 下的 vim 模式了

推荐: 关闭 vim 扩展的 useCtrlKeys, 保留一些 VS Code 自身的一些常用快捷键, 在 settings.json 里面添加配置 “vim.useCtrlKeys”: false

二、基础概念

1.模式:

命令(按键) 作用
ESC 进入normal模式(默认的模式)
i 进入插入模式(insert的缩写)
v 进入试图模式(view的缩写)

2.光标上下左右:

命令 作用 模式
h 光标向左移动一格 Normal
l 光标向右移动一格 Normal
j 光标向下移动一行 Normal
k 光标向上移动一行 Normal
上下左右键 上下左右切换光标 Normal & Insert

三、光标定位进阶

1.行内光标定位

注:banlk 字符是指 空格, tab, 换行, 回车等;^和$ _等符号需要加shift健才能使用。

命令 作用 模式
0 到当前行开头 Normal
home 到当前行开头(平常文本编辑也可以用,这里推荐在insert时需要使用) Normal & Insert
^ 到当前行第一个不是 blank 字符的位置 Normal
$ 到当前行末尾 Normal
g_ 到当前行最后有一个不是 blank 字符的位置 Normal
gg 到第一行 Normal
nG n 为行编号, 到第 n 行 Normal
G 到最后一行 Normal

2.词汇定位

注:一个单词由字母、数字和下划线组成

命令 作用 模式
w w(小写), 到下一个单词的开头 Normal

e

e(小写), 到下一个单词的结尾 Normal

每次移动会到达()等符号及其内部。如果想要跳跃的幅度变大,比如移动到忽略()及其内部单词,可以使用大写W/E

尝试一下:

(0)初始状态:

(1)按小写 w:

(2)按小写 e:

可以看到,如果光标不处于末尾,按e不会立即移动到下一个单词末尾,而是先到当前单词末尾

(3)按大写 W:

光标直接跳过(origin)移动到写一个单词开头

(4)按大写 E:

光标跑到")",说明大写的W和E是把print(origin)看成是一个整体来移动光标。

3.单词匹配

命令 作用 模式
* 移动到与当前光标匹配的下个单词(目前装的VS Code Vim 组件不生效) Normal
# 移动到与当前光标匹配的上个单词 Normal

尝试一下:

(1)按 *

原位置:

按下后:

(2)按 #:

原位置:

按下后:

注:光标所处在单词的哪个位置不重要,匹配的是当前光标所在的整个单词。

4.括号匹配

命令 作用 模式
% 定位与光标所在括号相对应的另一半,(使用前要将光标定位在某个括号上) Normal

 easy:-->

四、插入

vim 插入命令,光标定位完成后,进行插入操作前的命令, 命令执行后切换至 Insert 模式

命令 作用 模式
a 在光标后插入( 光标定位后输入 i 命令默认是光标前插入的) Normal
o 小写 o 在当前行之后插入新的一行,相当与回车效果 Normal
O 大写 O 在当前行之前插入新的一行 Normal

尝试一下:

(0)初始光标位置:

(1)按 i 

(2)按 a

(3)按 o 

(4)按O

五、查找

vim 是通过正则匹配来实现的
在 Normal 模式下, 先输入 /, 进入搜索模式
输入想要搜索的词汇, 此时在 vs code 中会高亮所有匹配项
单击 enter(回车) 键后, 点击 n 键就可以光标一个个定位匹配项

六、替换

(vim的语法在vs中无法实现替换,可以使用自带的ctrl+H实现替换)

尝试一下:

(1)按ctrl+H:输入内容:origin

高亮显示查找到的内容

(2)替换

输入替换内容

分两种情况:

按回车:替换一个匹配内容

按ctrl+alt+enter:替换全部匹配内容

七、粘贴

命令 作用 模式
p 小写 p, 在光标之后插入拷贝项 Normal
P 大写 P, 在光标之前插入拷贝内容 Normal
np(nP) 重复复制 n 次 Normal

尝试一下:

初始:复制的内容是 print,光标位置如图所示

(1)p(小写)

(2)P(大写)

(3)np

测试:3p

nP同理,粘贴三次在r前面

八、拷贝

命令 作用 模式
y 拷贝当前行以及其后面一行,共两行 Normal
yy 拷贝当前行 Normal
nyy n 为大于数字, 拷贝 n 行, 第一行为光标所在行 Normal
ye 从光标位置开始拷贝,至遇到第一个空后结束(不包括空格) Normal
yw 从光标位置开始拷贝,至遇到第一个空后结束(包括空格) Normal
y$ 从光标位置开始拷贝,到当前行行末, 包括空格 Normal
y0 从光标位置开始拷贝,到当前行行首, 包括空格 Normal
ynl 从光标位置开始, 向右拷贝 n 个字符 Normal
ynB 从光标位置开始,向左拷贝 n 个单词 Normal

1.尝试一下

初始:

(1)y:

(2)yy:

(3)nyy:

(这里测试使用的是2yy)

(4)ye 

(5)yw:

可见ye和yw粘贴后光标的位置是不一样的,yw包含当前拷贝单词后面的空格

(6)y$:光标从第二行的p处开始

(7)y0:光标初始位置在第二行最后一个右括号

从后往前,不包含光标当前位置

(8)ynl:

示例:y4l

(9)ynB

测试:y2B

从光标处,向左拷贝2个单词,拷贝的模式是大写的W/E模式。括号内和单词算一个整体

2.如何拷贝某一块区域, 比较精确的选择拷贝区域?
在 Normal 模式下, 将光标定位至目标拷贝区域的开始或结束位置,
输入命令 v(小写) 进入试图模式
移动光标,光标所经过的位置都被选中,(跟鼠标选中形式一样)
区域选定结束后, 输入 y 命令, 复制成功
如果输入 大写 V 命令, 此时只能以行为单位选中区域

九、删除

命令 作用 模式
dd 剪切当前行 Normal
ndd 剪切 n 行, 当前行为第一行 Normal
dw 从光标位置开始剪切, 至遇到第一个空后结束(包括空格) Normal
de 从光标位置开始剪切, 至遇到第一个空后结束(不包括空格) Normal
d$ 从光标开始位置剪切, 至当前行行末, 包括空格 Normal
d0 从光标开始位置剪切, 至当前行行首, 包括空格 Normal
dl 删除光标所在字符 Normal
dh 删除光标所在位置之前字符 Normal
dnl 从光标位置开始, 向右剪切 n 个字符 Normal
dnh 剪切光标之前的 n 个字符(不包括光标所在字符) Normal
dH 剪切当前光标之前所有内容 Normal
dL 剪切当前光标之后所有内容(包括光标所在字符) Normal

部分操作与拷贝类似,以下仅示范:

dl dnl dh dnh dH dL

初始:

(1)dl

(2)dnl

示例:d2l

(3)dh

(4)dnh

示例:d2h

(5)dL

(6)dH

如何 比较精确地删除区域
同上文的拷贝一样, 只需把 拷贝命令 y 换成 删除命令 d 即可

 

十、其他常用操作

1、重复之前的命令

Normal 模式下输入 .(小数点)

假设上一条命令是拷贝:print(origin)

按‘ . ’:

按‘ . ’一时爽,一直按一直爽:

2.全选(复制/删除)

Normal模式下, 首先全选文档: ggVG/ggvG => (gg 让光标移动到首行, v/V 进入Vision 模式, G 移动到最后一行)
输入 d 删除选中内容, 输入 y 复制选中内容

流畅来一遍:

ggvG

3.代码缩进

Normal 模式下, 进入 Vision 模式, 选中目标代码块,
快捷键 shift+> 向右缩进
快捷键 shift+< 向左缩进

v模式下选中:

向右缩进:shift+>

向左缩进:

4.撤销/取消撤销修改

撤销修改命令 和 取消撤销修改命令

命令 作用 模式
u 撤销上步修改 Normal

END

加油:)

本文参考:https://feifeiyum.github.io/2017/01/23/base-vimusage/

发布了159 篇原创文章 · 获赞 41 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_37768971/article/details/103419771
VS