键盘操作
移动光标
简单的移动
h
, j
, k
, l
配合数字:
2j
表示向下移动2行
利用查找
/hello
向后查找关键词 hello,回车就到了后面第一个 hello 处。
?hello
向前查找关键词 hello。
以word为单位进行移动
w
, b
同理,配合数字:
2w
表示向后移动2个word;
2b
表示向前移动2个word;
2e
表示向后移动2个word,但是会移动到word字符之后。
如果想忽略标点符号的word,就用大写
W
, B
, E
移动到行首行尾(适合行内移动)
^
表示移动到行首第一个word,即行首有空格的情况,不会移动到空格之前,而是移动到空格之后,第一个word之前;
0
表示移动到行首;即行首有空格的情况,会移动到空格之前;
$
表示移动到行末;即行末有空格的情况,会移动到空格之后;
如果想移动到行末最后一个非空白的字符处,就输入命令
$b
。一般来说,写代码,行末不会有空格存在的。这条应用没多大意义。
移动到文本开头和文本结尾(适合大范围移动)
gg
表示移动到文本开头;
G
表示移动到文本结尾;
利用行号移动到某一行(适合大范围移动)
:123
表示移动到第123行;
翻页
整页翻页
ctrl-f
f 就是 forword
ctrl-b
b 就是 backward
翻半页
ctrl-d
d 就是 down
ctrl-u
u 就是 up
插入
i
实现的是在光标之前的插入;
I
大写的i实现在光标所在行的最前面插入;
a
实现在光标后插入;
A
实现在光标所在行的行尾插入;
o
实现在光标所在行的上方插入新行;
O
是现在光标坐在行的下方插入新行;
窗口分割
分屏启动 vim
使用大写的 O 参数来垂直分屏。
1
vim -On file1 file2 ...
使用小写的 o 参数来水平分屏。
1
vim -on file1 file2 ...
关闭分屏
关闭当前窗口。
1
Ctrl+W c
关闭当前窗口,如果只剩最后一个了,则退出Vim。
1
Ctrl+W q
分屏
上下分割当前打开的文件。
1
Ctrl+W s
上下分割,并打开一个新的文件。
1
:sp filename
左右分割当前打开的文件。
1
Ctrl+W v
左右分割,并打开一个新的文件。
1
:vsp filename
移动光标
Vim 中的光标键是 h
, j
, k
,
l
(左,上,下,右),要在各个屏间切换,只需要先按一下
Ctrl+W
把光标移到
右边的屏。
1
Ctrl+W l
把光标移到
左边的屏中。
1
Ctrl+W h
把光标移到
上边的屏中。
1
Ctrl+W k
把光标移到
下边的屏中。
1
Ctrl+W j
把光标移到
下一个的屏中。
1
Ctrl+W w
移动分屏
这个功能还是使用了Vim的光标键,只不过都是大写。当然了,如果你的分屏很乱很复杂的话,这个功能可能会出现一些非常奇怪的症状。
向右移动。
1
Ctrl+W L
向左移动
1
Ctrl+W H
向上移动
1
Ctrl+W K
向下移动
1
Ctrl+W J
屏幕尺寸
下面是改变尺寸的一些操作,主要是高度,对于宽度你可以使用
Ctrl+W <
或是
Ctrl+W >
,但这可能需要最新的版本才支持。
让所有的屏都有一样的高度。
1
Ctrl+W =
增加高度。
1
Ctrl+W +
1
:reszie -5
减少高度。
1
Ctrl+W -
1
:reszie +5
改变宽度
1
:vertical reszie +5
全局替换
1 | :%s/old/new/g |
多行注释
插入注释
用 v
进入virtual模式;
用上下键选中需要注释的行数;
按 Control+v
(win下面
ctrl+q
)进入列模式;
按大写 I
进入插入模式,输入注释符 "#" 或者是
"//",然后立刻按下 ESC
(两下)。
取消注释
Ctrl + v
进入块选择模式,选中你要删除的行首的注释符号,注意 "//"
要选中两个,选好之后按 d
即可删除注释。
撤销 & 反撤销
u
撤销;
Ctrl + r
反撤销;
快速删除
命令 | 注释 |
---|---|
x | 删除光标所在后面的字符 |
X | 删除光标所在前面的字符 |
d+e | 删除光标所在位置到本单词末尾 |
d+E | 删除光标所在位置到本单词末尾包括标点符号 |
d+b | 删除光标所在位置到前面单词 |
d+B | 删除光标所在位置到前面单词包括标点符号 |
d+d | 删除一整行 |
d+0 | 删除光标所在位置到本行开头 |
d+$ | 删除光标所在位置到本行末尾 |
复制
命令 | 注释 |
---|---|
yy | 复制当前行 |
nyy | 从当前行开始复制n行 |
dd | 剪切当前行 |
移动行
命令 | 注释 |
---|---|
:m +1 | 下移 1 行 |
:m -2 | 向上移动 1 行 |
:m 3 | 将行移动到第 3 行之后 |
PS:
可以用
v
选中多行后再移动
查看保存的版本和已编辑的相同文件的差异
:w !diff % -
重新载入文件/刷新文件
在 git 提交后,可以用这个命令刷新文件,刷新 gitdiff 的高亮
重新载入当前文件:
1
2:e
:e! # 放弃当前修改,强制重新载入重新载入所有打开的文件:
1
2:bufdo e
:bufdo !e # 放弃当前修改,强制重新载入
配置
关闭 gVim 的声音、闪烁
在 ~/.vimrc
中添加如下配置:
1 | set vb t_vb= |
就要在 vim 中使用命令 :help vb
查看 visual bell
的帮助。
ref: windows下关闭gvim叮叮叮和闪屏
插件
插件管理 vim-plug
Reference:
https://vimjc.com/vim-plug.html
Install
1 | curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ |
安装插件
安装插件,只需要将插件写在 .vimrc 内,然后在 vim 中使用
:PlugInstall
命令即可:
1 | # source ~/.vim/vim-init/init.vim |
离线安装插件
- 先将插件下载后放在
~/.vim/bundles
目录下,注意要用git clone
命令下载,而不是直接下载,否则下一步安装会失败; - 在vim里运行
:PlugInstall
命令,即可完成插件的安装。
删除插件
删除插件,只需要将写在 .vimrc 配置文件内的插件删除,重启 vim
并执行命令 :PlugClean
即可:
1 | call plug#begin('~/.vim/plugged') |
保存在 vim 中使用 :PlugClean
:
一个好用的vim配置模板 vim-init
轻量级 Vim 配置框架,来自 skywind3000,添加了 automatic-verilog。
快速注释 preservim/nerdcommenter
常用快捷键:
- 注释/取消注释:
<leader>c<space>
- 左对齐注释:
<leader>cl
- 取消注释:
<leader>cu