vim_奇淫技巧

学习 vim 编辑器的语法的目的就是提高开发效率,因为 vim 的操作让开发者拜托了鼠标的限制。利用一些指令从而能够快速的完成各种操作。

本文以 Vscode 中的插件 vim 进行测试:

  • 安装插件
1
安装插件 Vim
  • 在配置文件中将下列配置复制进去:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
"vim.easymotion": true,
"vim.incsearch": true,
"vim.useSystemClipboard": true,
"vim.useCtrlKeys": true,
"vim.hlsearch": true,
"vim.insertModeKeyBindings": [
{
"before": ["j", "j"],
"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
}

普通模式

光标的移动

1
2
3
4
5
普通模式下:
h---向左移动
l---向右移动
j---向下移动
k---向上移动

针对文字的光标移动

按键 功能
w 跳到一个单词的开头
b 跳到一个单词的开头
e 跳到本单词或者下一个单词结尾
ge 跳到上一个单词的结尾

针对在文字段落中的移动

按键 功能
0 跳到行首
^ 跳到从行首开始的第一个非空字符
$ 跳到行尾
gg 跳到第一行
G 跳到最后一行

在字符之间移动

按键 功能
f{char} 光标跳到下一个{char}所在的位置
F{char} 光标跳到上一个{char}的位置
t{char} 光标跳到下一个{char}的前一个字符的位置
T{char} 光标反向跳到上一个{char}的最后一个字符的位置
; 重复上次的字符查找的操作
, 反向查找上次查找的命令

motion

普通模式下

操作符和 motion 进行配合:

1
2
3
4
5
u--撤销
c---修改;
y---复制
p---粘贴
d---删除
操作 功能
ciw 修改当前的文字
piw 复制当前的文字
diw 删除当前的文字
ci+包裹文字的符号 修改符号内的文字
da+包裹文字的符号 连同符号和里面的内容都删除
yi+加包裹文字的符号 复制符号内的所以内容
cib/dab 修改、删除小括号里面的内容
daa 删除中括号里面的指定项
n+dd 向下删除 n 行
n+cc 向下删除 n 行并进入编辑模式
n+yy 向下复制 n 行
d^/d$ 删除以光标位置前面/后面的内容
c^/c$ 删除以光标位置前面/后面的内容并进入编辑模式
die/cie/yie 删除/修改/复制这个文件
cit/dit 编辑/删除以光标位置为准的标签里面的所有内容

向前找 F 和向后找 f

1
2
f{char} --- 向后找到某个字符的位置
F{char} --- 向前找到某个字符的位置

大小写

操作 功能
~ 将光标下的字符改变大小写
n+~ 将光标位置开始的 n 个字符改变其大小写
g~~ 改变当前行的大小写
gUU 将当前行的字符改成大写
guu 将当前行的字母改成小写
gUaw(gUiw) 将光标下的单词改成大写
guaw(guiw) 将光标下的单词改成小写

V–可视模式

1
v+h/j/k/l---进行选中区域

VIM-VSCode tips:

1
2
3
4
5
6
7
gh--查看一些说明
gt--切换到下一个选项卡
gT--切换到上一个选项卡
n+gt/gT--切换到后/前n个选项卡
ctrl+0--跳到侧边栏
l--光标从侧边栏跳到指定文件
ctrl+1/2/3/4...---光标跳到指定的分屏

easyMotion:

1
2
3
<leader><leader>s{char}--搜指定字符
<leader><leader>f{char}--找后面指定字符
<leader><leader>F{char}--找前面指定字符

未完待续