Vim 常用命令

本人是 VSCode 的重度使用者,最近突然发现能够在 VSCode 中使用 Vim 插件编写代码,所以就趁着机会学习下Vim指令。

一、Vim 的几种模式

1)正常模式(Normal):这个模式的主要任务就是移动光标。确定好光标位置以后,进行删除和粘贴操作

2)编辑模式(Insert):这个模式的主要任务就是输入内容

3)可视化模式(Visual):这个模式就是选择内容,能够进行复杂的复制(简单的复制在 Normal 模式下就可以)

4)命令模式:执行一些 Vim 提供的指令,设置一些环境和整体的布局的内容。

二、Vim 常用命令

1)移动光标的指令

这个集合的指令,主要是在 Normal 模式下使用。让光标达到我们指定的地方。

最基本的移动方式,逐行移动和逐字符移动

j:光标向下移动一行

k:光标向上移动一行

h:光标向左移动一个字符,直到移动到行的最左侧为止

l:光标向右移动一个字符,知道此行的最后一个字符

逐个词的进行移动

这个是跳到单词的开头,有两个方向跳,大小写是否忽略符号

w:跳到下一个单词的开头上,不忽略符号。这个认为,连续的英文字母是词,连续的字符是不同的词。非连续的英文字母和非连续的字符都认为是不同的词。

W:跳到下一个单词的开头上,忽略符号。这个认为,只有空格分割的才是不同的词,不再区分字母和非字母。

b:跳到上一个单词的开头上,不忽略符号。

B:跳到上一个单词的开头上,忽略符号。

这个是跳到单词的结尾,有两个方向跳,大小写是否忽略符号

e:跳到下一个单词的结尾上,不忽略符号。

E:跳到下一个单词的结尾上,忽略符号。

ge:跳到上一个单词的结尾上,不忽略符号。

gE:跳到上一个单词的结尾上,忽略符号。

在一行的首和尾进行跳转

0: 光标移动到行的最左侧

$: 光标移动到行的最右侧

_:光标移动到行的句子的最前面

根据指定的字符,在一行内进行移动,这个要好好利用

f:在此行中向后查找接下来指定的字符,并将光标移动到此字符上

t:在此行中向后查找接下来指定的字符,并将光标移动到此字符之前

F:在此行中向前查找接下来指定的字符,并将光标移动到此字符上

T:在此行中向后查找接下来指定的字符,并将光标移动到此字符之后

;:重复上次的字符查找命令

,:反向查找上次的字符查找命令。

其实f 和 t 的区别,主要是用处不同,f在实际中主要用在根据字符查找,t在实际中主要根据标点查找

针对页面的跳转

gg:光标移动到文档的最开始

nG:光标跳转到第 n 行上

G:光标移动到文档结尾

zz:使得当前光标的所在位置在界面的中心

zt:使得当前光标的所在位置在界面的上面

zb:使得当前光标的所在位置在界面的下面

这两个快捷键是我将原始的命令重映射的

Ctrl+h(原始 Ctrl+e):界面向上移动一行,光标不动

Ctrl+l(原始 Ctrl+y):界面向下移动一行,光标不动

2)编辑指令

这个指令也是在 Normal 模式下使用的

控制进入 Insert 模式后光标所在的位置

i:进入Insert模式,在光标当前的位置前开始输入字符。

a:进入Insert模式,在光标当前的位置后开始输入字符。

I:进入Insert模式,在光标所在整行的位置前开始输入字符。

A:进入Insert模式,在光标所在整行的位置后开始输入字符。

s:进入Insert模式,删除光标下的字符。

o:进入Insert模式,在当前行的下方插入一个新行。

O:进入Insert模式,在当前行的上方插入一个新行。

删除一部分内容(这个删除的也就是默认到剪切板,能够进行粘贴)

d:删除操作,通常与其他的操作进行配合。以下是例子

dw:当前所在字符到w跳转到的所有字符之间都删除。(dW,db,dB,de,dE,dge,dgE都相同)

df{char}:当前所在字符到f跳转到的所有字符之间的都删除。(dF{char}都相同)

dd:删除光标所在的当前行

d10j:向下的10行都删除

c:改变操作,其实与d的操相同,唯一不同的时,操作完成以后进入编辑模式。

r:用于替换单个字符

3)复制和粘贴

首先是复制操作

y:复制命令,通常与其他操作进行配合。以下是例子

yy:复制当前行,包括换行符。

y$:复制从光标位置到行尾的文本。

y^:复制从光标位置到行首的文本。

yw:复制到下一个词的开头。

这个与 d 操作很像,都是复制到光标跳转到的位置。

然后是粘贴操作

p:是将剪切的内容粘贴到当前光标的后面。

P:是将剪切的内容粘贴到当前光标的前面。

4)选择操作

这个主要是在 Visual 模式下的使用。

v:进入 Visual 模式,文本的选择是以字符为单位。

V:进入 Visual 模式,文本的选择是以行为单位。

进入 Visual以后选中内容,d 就是删除操作(也是剪切),y 是复制操作,u 所有字母变小写,U所有字母变大写。shift + > 整体向右移动,shift + < 整体向左移动

5)其他

:s/old/new: 替换文本中的所有匹配项(这个要先在 Visual下 选中)

:%s/old/new:替换整个文件中的所有匹配项

u:撤销

Ctrl+r: 恢复撤销

x:删除当前光标所在的字符

r:替换当前光标所在的字符

关于函数的一些,gd:进入函数定义,Ctrl+o 从函数定义中返回,gh查看函数参数等信息。

关于VScode 中文件跳转的一些,Ctrl+0:将光标从编辑器跳转到文件栏,j 和 k 进行移动,使用 space 展开或者关闭文件夹,使用 l 将光标选中的文件在编辑器中打开。

zc:折叠,只折叠当前的一层

zo:展开,只展开当前的一层

zC:递归折叠当前以下的所有层

zO:递归展开当前以下的所有层

/str:向下查找字符串 str

?str:向上查找字符串 str

n 跳到下一个匹配项, N 跳到上一个匹配项

:noh 或者 :nohl 取消查找的高亮

*: 选取光标所在处的整个字符,并向下查找。

#: 选取光标所在处的整个字符,并向上查找。

shift+%:应用在光标处为圆括号、大括号时,来查找另一个与之匹配的圆括号,大括号。

shift+c:清除该行光标之后的内容

shift+j:表示将下一行接到上一行,合并上下行

三、混合使用

1)diw,这其中的 i 指的是 ”inner“,还有一个对应的 a,即 ”around“。这里的 i 和 a 相当于是选择了范围。

2)其实很多操作指令基本上就是搭配范围来使用的。w 也是个范围,f也是范围。

3)xp:调换相邻两个字符,ddp 调换相邻两行。

4)注意:x 和 s,都是删除一个字符,不同的是 x 删除完字符以后会进入编辑模式。

  • 19
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值