生成tags

在所在目录运行

  1. ctags -R

在vim中

  1. :set tags = /your/path/tags

生成cscope索引

  1. cscope -Rbq

命令

  • :A 打开头文件

  • :E 浏览打开文件

  • :wqa

  • :b(buffer) 浏览/切换缓冲区, 例如:b1

  • :cd 改变工作目录

  • :lcd 改变当前窗口工作目录

  • :pwd 显示当前工作目录

  • :He

  • :He!上分屏

  • :Ve 横分屏

  • :Te tag explore

  • :colorscheme test3 更改配色方案

快捷键

  • {c-f12}, {c-n} 自动补全

  • , ; 结合f{char}查找, 上一个, 下一个

  • g; 上一个修改过的地方

  • g, 下一个修改过的地方

  • {c-o},{c-i} 回到上一个地方, 下一个地方

  • {c-a}{num},{c-x}{num} 增加num, 减少num

  • u undo

  • {c-r} 重做

文件比较

  1. vim -d file1 file2

d = diff

在你忘记用 root 方式打开文件时的文件保存

  1. :w !sudo tee %

按时间回退文件

  1. :earlier 1m \\会把文件回退到 1 分钟以前的状态。
  2. :later \\ 注意,你可以使用这个的命令进行相反的转换

显示不可见字符

:set invlist

替换

语法为 :[addr]s/源字符串/目的字符串/[option]

全局替换命令为::%s/源字符串/目的字符串/g
[addr] 表示检索范围,省略时表示当前行。
如:“1,20” :表示从第1行到20行;
“%” :表示整个文件,同“1,$”;
“. ,$” :从当前行到文件尾;
s : 表示替换操作
[option] : 表示操作类型
如:g 表示全局替换;
c 表示进行确认
p 表示替代结果逐行显示(Ctrl + L恢复屏幕);
省略option时仅对每行第一个匹配串进行替换;
如果在源字符串和目的字符串中出现特殊字符,需要用”\”转义