vim编程常用命令
参阅::help usr_29
:help usr_30
% 跳转到配对的括号去
[[ 跳转到代码块的开头处(但要求代码块中'{‘必须单独占一行)
gD 跳转到局部变量定义处
” 跳转到光标上次停靠的地方(是两个’不是”)
mx 设置书签,x只能是a-z的26个字母
`x 跳转到书签处
> 增加缩进,”x>”增加以下x行的缩进
< 减少缩进,”x<“减少以下x行的缩进
高效浏览源码(TagList)
已经设置快捷键tl
参阅::help taglist.txt
<CR> 跳到光标下tag所定义的位置,用鼠标双击此tag功能一样
o 在一个新打开的窗口中显示光标下tag
<Space>显示光标下tag的原型定义
u 更新taglist窗口中的tag
s 更改排序方式,在按名字排序和按出现顺序排序间切换
x taglist窗口放大和缩小,方便查看较长的tag
+ 打开一个折叠,同zo
– 将tag折叠收起来,同zc
* 打开所有折叠,同zR
= 将所有tag折叠起来,同zM
[[ 跳到前一个文件
]] 跳到后一个文件
q 关闭taglist窗口
<F1> 显示帮助
ctrl+w+w 在正常编辑区域和tags区域中切换
文件浏览器和窗口管理器(WinManager)
已经设置快捷键wm
<CR> 打开目录或文件
– 返回上一级目录
c 切换vim当前工作目录正在浏览的目录
d 创建目录
D 删除目录或文件
i 切换显示方式
R 文件或目录重命名
s 选择排序方式
x 定制浏览方式,使用你指定的程序打开该文件
参阅::help winmanager
Cscope(Cscope)
参阅::help if_cscop.txt
功能类似Ctags,比它更强大
生成cscope数据库文件:cscope -Rbq
将cscope文件导入到vim::cs add /…/cscope.out /…
查找函数vim_strsave()在哪些地方被调用过::cs find c vim_strsave
打开QuickFix窗口::cw
“cscope find”的用法:
cs find c|d|e|f|g|i|s|t name
0或s 查找本C符号(可以跳过注释)
1或g 查找本定义
2或d 查找本函数调用的函数
3或c 查找调用本函数的函数
4或t 查找本字符串
6或e 查找本egrep模式
7或f 查找本文件
8或i 查找包含本文件的文件
在~/.vimrc定义快捷键举例:
nmap <C-_>s :cs find s <C-R>=expend(“<cword>”)<CR><CR>
QuickFix窗口(已经集成在vim中)
参阅::help quickfix
用法例子:
:make 或 :cs find t void 产生多个结果
:cw 打开quickfix窗口
:cn 切换到下一个结果
:cp 切换到上一个结果(可添加快捷方式eg:nmap <F6> :cn<cr>)
快速浏览和操作Buffer(MiniBufExplorer)
参阅::help buffer
vim自带的buffer管理工具有::ls,:bnext,:bdelete
此为一款类似的但功能强大的vim插件::MiniBufExplorer
用法举例:
vim一个文件后再:vim另一个文件,MiniBufExplorer窗口就自动弹出来了
<Tab> 向前循环切换到每个buffer名上
<S-Tab> 向后循环切换到每个buffer名上
<Enter> 打开光标所在的buffer
d 删除光标所在的buffer
在工程中查找(Grep)
在vim中可使用以下命令:
:Grep 按照指定的规则在指定的文件中查找
:Rgrep 同上, 但是是递归的grep
:GrepBuffer 在所有打开的缓冲区中查找
:Bgrep 同上
:GrepArgs 在vim的argument filenames (:args)中查找
:Fgrep 运行fgrep
:Rfgrep 运行递归的fgrep
:Egrep 运行egrep
:Regrep 运行递归的egrep
:Agrep 运行agrep
:Ragrep 运行递归的agrep
调用格式:
Grep [<grep_options>] [<search_pattern> [<file_name(s)>]]
:Rgrep [<grep_options>] [<search_pattern> [<file_name(s)>]]
:Fgrep [<grep_options>] [<search_pattern> [<file_name(s)>]]
:Rfgrep [<grep_options>] [<search_pattern> [<file_name(s)>]]
:Egrep [<grep_options>] [<search_pattern> [<file_name(s)>]]
:Regrep [<grep_options>] [<search_pattern> [<file_name(s)>]]
:Agrep [<grep_options>] [<search_pattern> [<file_name(s)>]]
:Ragrep [<grep_options>] [<search_pattern> [<file_name(s)>]]
:GrepBuffer [<grep_options>] [<search_pattern>]
:Bgrep [<grep_options>] [<search_pattern>]
:GrepArgs [<grep_options>] [<search_pattern>]
已设置快捷键F3:
1.将光标移到需要查找的单词上,按F3键
2.显示Search for pattern:word,可以进行正则表达式编辑,如全字匹配:/<word/>,按回车键
3.显示Search in files:*,可以修改搜索范围,默认为该目录下所有文件,如:*.c *.h,按回车键
高亮的书签(VisualMark)
vim自带的书签概念参阅::help Mark
mm 光标所在行添加书签
F2 切换到下一个书签
Shift+F2 切换到上一个书签
提示:~/.vim/plugin/visualmark.vim中的guibg用来设置颜色的
自动补齐(系统自带)
参阅::help new-omni-completion
在插入模式:
CTRL-P 向后查找匹配的单词
CTRL-N 向前查找匹配的单词
按CTRL-X进入子模式后就可以用下面的命令:
CTRL-T 根据同义词字典补齐
CTRL-V 补全vim命令
CTRL-U 用户自定义补全方式
CRTL-S 拼写建议
CTRL-D 宏定义
CTRL-F 文件名
CTRL-K 字典
CTRL-I 当前文件以及由#include包含进来的文件
CTRL-L 整个行
CTRL-] 标记(tags)
CTRL-P 向前查找,与没有CTRL-X命令时相同
CTRL-N 向后查找,与没有CTRL-X命令时相同
提示:CTRL-X CTRL-D命令查找宏定义.他也会查找#include文件.当我们执行完这个命令以后就可以使用CTRL-P,CTRL-N来进行匹配查找.