记录一些VIM命令
Copy(y) Y(=yy) , 10Y, yG ; // one line, ten line, to the end of file
:/ forward模式查询
:/? backword模式查询
n 下一个匹配
:g/ pattern1/s//patttern2/g 用pattern2替换pattern1
:s/str1/str2 str2替换str1, 当前行首次出现
:s/str1/str2/g 行中所有str1替换成str2
:s/tr1/str2/gc 需要确认每一次替换
,$s/str1/str2/g 当前行到文件结尾
%s/str1/str2/g %表示所有文本
v 选中
:set list 显示特殊字符
:set nolist
:%!xxd 十六进制模式
:%!xxd -r 文本模式
200G jump to line 200
dG 删除到文件尾
CTR-v, 不可见字符 编辑不可见字符, 如 CTR-v, CTR-a
:set wrap 自动换行
:set nowrap
大小写转换 gu或gU
guW, gUw
gu0, gU$, guG
:sp filename, vsp filename 分割窗口
CTR_w , h, j, k, l 跳转窗口
CTR_w, - 减小当前窗口
CTR_w,+ 增大当前窗口
CTR_] 跳转标签
CTR_T or CTR_O 跳回来
:set backup 默认原文件名末尾添加~
:set backupext=.bak 原文件名末尾添加.bak
:saveas filename 另存为
:file filename newname 重命名?
:vimdiff fname1 fname2 比较文件
:only 关闭除当前窗口外的所有窗口
CTR_s 冻结vim
CTR_q 解冻vim
* jump到下一个相同的单词
% 从代码块开头jump到代码块结尾 , 如#if -> #end ( -> )
[{ 跳到当前代码块的开始位置 {
gd 跳到一个变量的local声明
. 查找到下一个单词后, 重复上次变化
CTR_N/ CTR_P 自动关键字补全
q[letter] 开始记录命令, 相当于宏
[letter] 结束记录命令
@[letter] 运行记录的命令
:abbr nm name 缩写
[I 显示在include文件中所有匹配的方法名
:grep ...