vim常用操作

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来进行匹配查找.

0 条评论
发表一条评论

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。