###《VIM实用技巧》
#@author: gr
#@date: 2015-11-20
#@email: forgerui@gmail.com
《VIM实用技巧》阅读笔记。
1. 使用>, <进行缩进
>G #从当前行缩进到最后一行
v > #利用v选中需要缩进的行,然后缩进
2. f行内快速定位
要在一行内快速移动到某个字符,使用f。
f+ #定位到本行中的+
使用;
定位下一个,,
定位上一个。
3. s
s
命令可以删除当前字符,并切换到编辑模式。S
命令可以删除当前行,并切换到编辑模式。C
= c$
,删除当前行所在字符以后的所有字符。
4. aw
用dw
、cw
都只能删除当前字符到单词最后,使用daw
、dcw
可以删除整个字符,并且会把前面的空格也删除。
5. global
-
:g/{pattern}/ [cmd]
:g/^\s*$/ d #删除空格行
-
:g/{pattern}/ [range] [cmd]
:g/{/ .+1, /}/-1 sort #对大括号里内容进行排序
6. 自动补全
<C-n>
上一条<C-p>
下一条
7. 可视区
用gv
选中上一次的选中可视区。'<, '>
也表示上一次选中区。
:'<, '> d
8. 大小写转换
gU
变大写gu
变小写g~
大小写互换
9. 寄存器
"
:默认寄存器0
:复制专用寄存器+
:系统寄存器
与系统进行复制。
"+y //复制内容到系统寄存器
"+p //粘贴系统寄存器内容
其它寄存器:"%
:当前文件名"/
:上次查找的模式
10. set paste
当用系统寄存器粘贴时,由于autoindent
会导致许多缩进,这时使用set paste
选项就可避免,粘贴完使用set nopaste
关闭即可。
11. 跳转
'a
:单引号跳转到行
``a`:跳转到具体单词
<C-o>
:返回到上一条位置
12. 行间移动
w
:下一个单词开头b
:上一个单词开头e
:下一个单词结尾ge
:上一个单词结尾
f
:查找下一个字符t
:查找上一个字符
13. 文件状态
<C-g>
查看当前文件状态。
14. 用root用户保存
:w !sudo tee %
15. 文件系统
:e ../ #打开上层目录
:E #打开当前目录
- #返回上层目录
16. 自动补全
<C-d>
:自动补全,忘记命令时可以使用自动补全查看候选项
set exp<C-d>
17. :t
,:m
copy
简写为t
,move
简写为m
,d
删除。
:[range] copy {address}
:6copy. # 把第6行复制到当前行
:10,$ m . # 把第10行到最后一行内容移动到当前行
18. 执行上次Ex命令
@:
执行上次Ex命令
19. 插入模式执行命令
在插入模式中,如果不想退出,当前行显示在屏幕*,可以<C-o> zz
。
插入模式中,用<C-r>
寄存器输入寄存器的内容。用<C-r>=
做运算。