- 配置文件
$vim ~/.vimrc
- 在编辑配置文件前,将原有文件进行备份总是一个好的习惯。比如
cp .vimrc .vimrc.bak
- 另外,在编辑配置文件时,将改动添加注释也是一个很好的习惯,帮未来的自己一个忙吧。
一、编辑
快捷键 | 说明 |
---|---|
0 |
行首 |
$ |
行尾 |
^ |
非空行首 |
g_ |
非空行末 |
w |
下个词头 |
b |
上个词头 |
e |
下个词尾 |
x |
向右删除 |
X |
向左删除 |
% |
括号匹配 |
J |
合并两行 |
H |
屏幕顶行 |
M |
屏幕中间行 |
L |
屏幕底行 |
zz |
当前行置于屏幕中央 |
zt |
顶部 |
zb |
底部 |
gg |
跳转到页首 |
G |
跳转到页尾 |
nG |
跳转到指定行 |
yy |
拷贝一行 |
ye |
从当前位置拷贝到词尾 |
ge |
移至前一个单词的最后一个字符 |
u |
撤销上一步操作 |
ctrl-r |
恢复上一步操作(u的反命令) |
~ |
转换大小写 |
dNw |
删除N个词到下个词头 |
dNe |
删除N个词到下个词尾 |
r |
替换光标处字符,Nr表示将多个字符替换为即将输入到字符 |
R |
从当前光标所在处开始替换 |
xp |
交换左右两个字符 |
ddp |
交换上下两行 |
yNw |
复制N个词 |
Nyy |
复制N行 |
y\$ |
复制到行尾 |
s |
删除光标处字符并插入 |
S |
删除光标所在行并插入(同C,cc,c$) |
db |
删除前边的字符 |
dw |
删除后边的字符 |
diw |
删除光标处字符,不含空白字符 |
daw |
删除光标处字符,包含空白字符 |
ciw |
删除光标处字符,并开始插入 |
caw |
删除光标处字符和其后边空格,并开始插入 |
dG |
删除到页尾 |
dgg |
删除到页首 |
:m,nd |
删除m~n行 |
:m,ny |
复制m~n行 |
:m,nmt |
剪切m~n行内容到t行 |
:m,ncot |
复制m~n行内容到t行 |
N>> |
N行右缩进 |
N<< |
N行左缩进 |
== |
对齐当前行 |
gg=G |
对齐全文 |
ggvG |
全选 |
ctrl-f/b |
上翻页/下翻页 |
ctrl-u/d |
上翻半页/下翻半页 |
ctrl-g |
页面底部显示行数等文件相关情况 |
`` | 在最近停留的两点间跳转 |
`. | 跳转到上次修改位置 |
ctrl-i/o |
跳转到将来/过去停留的位置 |
:args |
显示当前正在编辑的文件 |
. |
重复上次操作 |
打开最近一次打开的文件 | !vim |
查看最近打开过的文件 | 在一个打开的文件中输入:ol (ol是oldfiles的缩写),若该命令无效,可以尝试:bro ol (:browse oldfiles的缩写) |
直接打开最近的任何文件 | 在用:ol 查看历史时,使用:e #<数字 来直接打开对应文件 |
:sp |
水平分隔当前窗格 |
:vs |
垂直分隔当前窗格 |
Ctrl+w,Ctrl+w |
切换到下一个窗格(顺时针) |
Ctrl+w,Ctrl+j |
切换到下面的窗格 |
Ctrl+w,Ctrl+k |
切换到上面的窗格 |
Ctrl+w,Ctrl+h |
切换到左边的窗格 |
Ctrl+w,Ctrl+l |
切换到右边的窗格 |
二、搜索
快捷键 | 说明 |
---|---|
* |
在文本中查找当前光标所在处字符(向下查找) |
# |
(向上查找) |
? |
向上搜索 |
/ |
向下搜索 /was$ (只匹配位于行末的was);/^was (只匹配位于行首的was) |
v |
字符选择 |
V |
行选择 |
ctrl-v |
块选择(选择后o可在选择区域两端跳转) |
:set ignorecase |
忽略大小写搜索 |
:set noignorecase |
区分大小写搜索 |
:set hlsearch |
高亮搜索结果 |
:set nohlsearch |
关闭高亮 |
. |
匹配任意单字符 |
\ |
三、替换
快捷键 | 说明 |
---|---|
:%s/old/new/g |
全文替换 |
:m,ns/old/new/g |
m~n行替换 |
:s/正则/替换文本/g |
本行内替换 |
& |
重复上次替换命令 |
四、标记
快捷键 | 说明 |
---|---|
ma |
在当前光标处标记“a”,可用“a~z”,“A~Z”作为标记字母,小写仅用于当前缓冲区,大写可跨越不同的缓冲 |
'a |
单引号+标记,可移动到指定标记行的首个非空字符 |
`a | 反引号+标记,可移动到标记时的光标位置 |
:marks |
显示所有的标记 |
:delmarks a b c |
删除a,b,c标记 |
:delmarks! |
删除所有标记 |
使用标记快速删除文本行:d'a |
复制行:y'a |
系统内置的特殊标记如下:
.
最近编辑位置0~9
最近使用的文件^
最近插入的位置'
上次跳转前的位置"
上次退出文件前的位置[
上次修改开始处]
上次修改结束处
五、折叠与展开
快捷键 | 说明 |
---|---|
zc |
折叠代码(close) |
zo |
展开代码(open) |
zm |
折叠全部 |
zr |
展开全部 |
zj |
下一个折叠 |
zk |
上一个折叠 |
zn |
禁用折叠 |
zN |
启用折叠 |
六、保存退出
快捷键 | 说明 |
---|---|
:w |
保存 |
:wq |
保存退出 |
ZZ |
保存退出 |
:q! |
不保存退出 |
:wq! |
保存退出(忽略只读属性,所有者及root可用) |
七、示例
操作 | 命令 |
---|---|
向下移动 7 行 | 7j |
删除一个词 | dw |
删除一行 | dd |
从光标处删除到行尾 | d$ |
从光标处删除到行首 | d0 |
删除{} 中的内容 |
di{ |
光标移动至 80 行 | 80G |
在当前文件中搜索光标所在位置 | *(#) |
在 50 行至 100 行间查找并替换 | :50,100/old/new/g |
在同一文件中对比两个不同的块 | :sp(to 'split' the view) |
输入23+45+119 的结果 |
Ctrl+r=23+45+119 |