笔记说明

  • 按键指令中""间内容代表同时按下多个按键,使用空格隔开。顺序按下按键的指令不使用空格
  • 输入内容使用’‘标注
  • []代表可变参数,用斜体表示

基础指令

启动

vi/vim/nvim [filename]

五种常用命令模式

普通模式

其他模式->普通模式:

处于任何模式下,按ESC或者"Ctrl c"都可以回到普通模式。

编辑模式

普通模式->编辑模式:

i:当前光标处进行编辑

a:当前光标后进行编辑

I:当前行首进行插入

A:当前行尾进行插入

o:当前行前插入新行

O:当前行后插入新行

在插入模式下按"Ctrl o"可进入普通模式,在此模式下可以运行一次普通模式命令,然后就又回到编辑模式。

替换模式

普通模式->替换模式:

r:替换光标处单个字符

R:替换多个字符

"[n]r": 将光标所在向后 n 个字符都替换掉,例如 "3rs "可以把光标向后的三个字符都替换成 s

在持续替换模式中可使用 Insert 键在持续替换模式和插入模式中切换

可视模式

普通模式->可视模式:

v:可进行文本选择

V: 进入行选择模式,整行整行地进行选择

"Ctrl q": 进入块选择模式。在这个模式下,你可以以”块” 或者 “列” 的方式选择文本。本来快捷键是 "Ctrl v", 但是在 Windows 上,Vim 会模仿 Windows 快捷键,"Ctrl v"是粘贴,所以使用 "Ctrl q" 进入块选择模式。

命令模式

普通模式->命令模式:

按下shift ;进入

输入一些命令,按enter执行,执行完命令之后自动回到普通模式,或者直接按 Esc 回到普通模式。

移动

h、j、k、l “ 对应 ”左、下、上、右“

gg“:全文行首

G:全文行尾

enter、''shift ='':下一行行首

-:上一行行首

:[n]:跳转到第n行(n为参数)

" ` `":回到上次位置

"Ctrl o":到“跳转列表”的上次位置,按一下就会跳一次

"Ctrl i":“跳转列表”的下次位置,按一下就会跳一次

"m[n]":n为按键,做标记使用

更多标记

  • '' 是上次跳转操作光标所在的位置
  • '" 是上次退出当前文件的位置
  • '[ 是上次编辑(删除修改等)的开始位置
  • '] 是上次编辑(删除修改等)的结束位置
  • '. 是上次编辑(删除修改等)的最后的操作位置

b:左边最近的词头

w:右边最近的词头

e:向右最近的词尾

"ge":向左最近的词尾

W:向右最近的大词头

B:向左最近的大词头

^:移动到行首

"g_":移动到行尾

0:移动到本行第一个字符

$:移动到本行最后一个字符

f:向右查找,需要配合字母进行

F:向左查找

t:同f功能,不过停留在目标的前一个字母

;:在本行内,沿查找方向继续查找

,:在本行内,沿反向方向继续查找

需要注意的是,继续查找功能对于tT,是根据光标位置判定的,例如使用了te,想要;继续,就要按一次l,让字母落在e上,否则光标是不会动的。可以使用反复横跳,但,的光标移动效果相当于T,停留在目标“前”一个字母。

  • "Ctrl g":显示文件行数
  • 显示行号 ':se nu'
  • 显示相对行号 ':se rnu'

大小词:

  • 小词就是我们常规意义的词,被 、 等标点分开的词
  • 大词 里面包括了 、 等标点,只能被空格、tab、换行分割

数字参数

[n][command]

例如:

"3w":执行三次w

"2fo":向右找到第二个o

2;:继续查找第二个(这个;确实很好用 但是前提是得要加上参数 -u None)

  • 可以修改.vimrc配置文件
  • 删除掉nnoremap ; :之后

3G:跳到第3行

初始配置

':set [option]'命令

[option]可以用':h :set'查看

进阶技巧

代码技巧

gg=G:全文自动缩进

最后修改:2023 年 08 月 01 日
如果觉得我的文章对你有用,就是对我最好的赞赏。