一、基本编辑操作
返回上一个编辑的文件: e#
跳转到指定的行,比如第30行: 30G 或 30gg
自动补全: Ctrl-N 下一个匹配词,Ctrl-P 前一个匹配词
查找与替换:
s/old/new/g 当前行替换 %s/old/new/g 全文替换 %s/ols/new/gc 全文替换并请求确认
剪切、拷贝、粘贴:
1,按v并移动光标选择,或者按V移动光标整行选择 2,d剪切,y拷贝 3,移动光标到指定位置 4, p粘贴在光标之后,P粘贴在光标之前
将tab转换为空格,使用ret命令(replace tab)格式为 :
[range]ret[ab]! [new-tabstop] 例如: %ret!4
使用标签页:
:tabf ~/.vimrc 在新标签页中打开~/.vimrc
:tabn 下一个标签页
:tabp 上一个标签页
:tabfirst 第一个标签页
:tablast 最后一个标签页
:tabnew 新建一个标签页
显示当前文件的完整路径和光标所在位置:
Ctrl-g 或 :f
二、使用ctags
加载tags文件:
:set tags=../../ctags
跳转到指定的标签:
:tag enable_mmu
跳转到光标下单词的标签:
CTRL-]
跳转回上一个标签:
CTRL-O
如果有多个相同的标签,那么:
跳到第一个标签 :tfirst 或者 :trewind
跳到最后一个标签 :tlast
跳到下一个匹配的标签 :tnext
跳到前一个匹配的标签 :tprevious 或者 :tNext
使用预览窗格:
命令 | 短命令 | 描述 |
:ptag [tag] | :pta | 在预览窗格中打开标签 |
CTRL-W } | 打开光标下的标签 | |
:ptnext | :ptn | 跳到下一个匹配的标签 |
:ptprevious | :ptp | 跳到上一个匹配的标签 |
:pclose | :pc | 关闭预览窗格 |
CTRL-W z | 关闭预览窗格 |
三、代码折叠
在~/.vimrc中设置:
set foldenable
set foldmethod=syntax
折叠命令:
zc | 关闭当前打开的折叠 |
zo | 打开当前的折叠 |
zm | 关闭所有折叠 |
zM | 关闭所有折叠及其嵌套的折叠 |
zr | 打开所有折叠 |
zR | 打开所有折叠及其嵌套折叠 |
zd | 删除当前折叠 |
zE | 删除所有折叠 |
zj | 移动到下一个折叠 |
zk | 移动到上一个折叠 |
zn | 禁用折叠 |
zN | 启用折叠 |