Vim
安装与配置
改键
编辑.vimrc文件
text
inoremap jk <ESC>1
插件
F1 打开 首选项:用户设置,按需增添以下代码
json
//j+j 替换 esc 键位,更加高效快捷
"vim.insertModeKeyBindings": [
{
"before": [
"j",
"j"
],
"after": [
"<Esc>"
]
}
],
//以下键位将由 vscode 进行处理
"vim.handleKeys": {
"<C-a>": false,
"<C-f>": false,
"<C-x>": false,
"<C-w>": false,
"<C-b>": false,
},
// 突出显示与当前搜索匹配的所有文本
"vim.hlsearch": true,1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
vimium-C on Chorme 自定义搜索引擎
text
b|ba|baidu|Baidu|百度:https://www.baidu.com/s?ie=utf-8&wd=%s \
blank=https://www.baidu.com/ 百度
bi: https://www.bing.com/search?q=$s
bi|bing|Bing|必应:https://cn.bing.com/search?q=%s \
blank=https://cn.bing.com/ 必应
g|go|gg|google|Google|谷歌:https://www.google.com/search?q=%s\
www.google.com re=/^(?:\.[a-z]{2,4})?\/search\b.*?[#&?]q=([^#&]*)/i\
blank=https://www.google.com/ Google
b.m|bm|map|b.map|bmap|地图 | 百度地图:\
https://api.map.baidu.com/geocoder?output=html&address=%s&src=vimium-c\
blank=https://map.baidu.com/
gd|gaode|高德地图:https://www.gaode.com/search?query=%s \
blank=https://www.gaode.com
g.m|gm|g.map|gmap: https://www.google.com/maps?q=%s \
blank=https://www.google.com/maps 谷歌地图
bili|bilibili|bz|Bili: https://search.bilibili.com/all?keyword=%s \
blank=https://www.bilibili.com/ 哔哩哔哩
y|yt: https://www.youtube.com/results?search_query=%s \
blank=https://www.youtube.com/ YouTube
w|wiki: https://www.wikipedia.org/w/index.php?search=%s Wikipedia
b.x|b.xs|bx|bxs|bxueshu: https://xueshu.baidu.com/s?ie=utf-8&wd=%s \
blank=https://xueshu.baidu.com/ 百度学术
gs|g.s|gscholar|g.x|gx|gxs: https://scholar.google.com/scholar?q=$s \
scholar.google.com re=/^(?:\.[a-z]{2,4})?\/scholar\b.*?[#&?]q=([^#&]*)/i\
blank=https://scholar.google.com/ 谷歌学术
t|tb|taobao|ali|淘宝:https://s.taobao.com/search?ie=utf8&q=%s \
blank=https://www.taobao.com/ 淘宝
j|jd|jingdong|京东:https://search.jd.com/Search?enc=utf-8&keyword=%s\
blank=https://jd.com/ 京东
az|amazon: https://www.amazon.com/s?k=%s \
blank=https://www.amazon.com/ 亚马逊
zhihu|zh|知乎:https://www.zhihu.com/search?type=content&q=%s
douban|db|豆瓣:https://www.douban.com/search?q=%s
wm|wayback:https://web.archive.org/web/20240000000000*/%s
98|cc98:https://www.cc98.org/search?boardId=0&keyword=%s
icon:https://www.iconfont.cn/search/index?searchType=icon&q=%s
iresearch|艾瑞 | 研报|yb:https://www.iresearch.com.cn/search?type=1&keyword=%s
png|img:https://pngimg.com/search_image/?search_image=%s
\:i: vimium://sed/s/^//,lower\ $S re= Lower case
v.m|math: vimium://math\ $S re= 计算器
v.p: vimium://parse\ $S re= Redo Search
github: https://github.com/search?q=$s \
blank=https://github.com/ GitHub 仓库
gitee: https://search.gitee.com/?type=repository&q=$s \
blank=https://gitee.com/ Gitee 仓库
js\:|Js: javascript:\ $S; JavaScript1
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
简介

用法
正常模式
- 基本移动:
hjkl(左,下,上,右) 词:w(下一个词),b(上一个词/词初),e(下一个词/词尾) - 行:
0(行初),^(第一个非空格字符),$(行尾) 屏幕:H(屏幕首行),M(屏幕中间),L(屏幕底部) - 翻页:
Ctrl-u(上翻),Ctrl-d(下翻) - 文件:
gg(文件头),G(文件尾) 行数:{行数}G ({行数}为行数) - 杂项:
%(找到配对,比如括号或者/* */之类的注释对) - 查找:
f{字符},t{字符},F{字符},T{字符} - 查找/到 向前/向后 在本行的 , / ; 用于导航匹配
- 搜索:/{正则表达式}, n / N 用于导航匹配
modifier
ci(更改括号中的内容da"删除包括括号在内的
| 命令 | 含义 |
|---|---|
| d | delete 删除 |
| c | change 修改 |
| y | yank 复制 |
| v | 选中 |
| > | 缩进 |
| < | 反缩进 |
| 对象 | 含义 |
|---|---|
| ( 或 ) | 小括号 |
| [ 或 ] | 中括号 |
| 大括号 | |
| ' | 单引号 |
| " | 双引号 |
| w | 单词 |
| s | 句子 |
| p | 段落 |
底线命令模式
在命令模式下按下 :(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
:w:保存文件。 :q:退出 Vim 编辑器。 :wq:保存文件并退出 Vim 编辑器。 :q!:强制退出 Vim 编辑器,不保存修改。
技巧
重复
. 用于重复上一次更改。例如,使用 x 删除一个字符后,可以连续按 . 来重复删除。
单词级移动
| 命令 | 作用 |
|---|---|
w | 跳到下一个单词开头 |
e | 跳到单词结尾 |
b | 回到上一个单词开头 |
配合修改:
| 命令 | 作用 |
|---|---|
cw | 修改一个单词 |
dw | 删除一个单词 |
ciw | 修改当前单词(常用) |
ciw 是非常实用的命令。
快速字符查找
| 命令 | 说明 |
|---|---|
f{字符} | 向右跳到该字符 |
F{字符} | 向左跳到该字符 |
t{字符} | 跳到该字符前一个位置 |
例如:
vim
f(1
跳到最近的 "("
配合删除:
vim
df(1
复制粘贴
| 命令 | 作用 |
|---|---|
yy | 复制当前行 |
5yy | 复制 5 行 |
p | 在下面粘贴 |
P | 在上面粘贴 |
删除其实也会复制(删除=剪切):
| 命令 | 作用 |
|---|---|
dd | 删除当前行并复制到寄存器 |
撤销与重做
| 命令 | 作用 |
|---|---|
u | 撤销 |
Ctrl + r | 重做 |
可视模式
| 命令 | 作用 |
|---|---|
v | 字符可视(普通选中) |
V | 行可视(最常用) |
Ctrl + v | 块选择(纵向选中,列编辑) |
块编辑示例:
- 按
Ctrl + v - 选中多行
- 按
Shift + i - 输入内容
- 按
ESC
可实现在多行前同时插入内容,批量操作十分高效。
文本对象
| 命令 | 意义 |
|---|---|
ciw | 修改单词 |
ci" | 修改双引号内容 |
ci( | 修改括号内容 |
di{ | 删除花括号内容 |
da" | 删除包括双引号 |
括号匹配
| 命令 | 作用 |
|---|---|
% | 跳转到匹配括号 |
在括号处按 %,跳到对应的匹配括号。