你可能会发现很多东西没有高亮起来, 比如运算符号, 各种括号, 函数名, 自定义类型等, 但是看上面的图片, 我的运算符号和函数名都加亮了^_^, 想知道为什么吗? 哇哈哈哈哈.... 让我来教你吧 ...
主要的思路是新建一个语法文件, 在文件中定义你要高亮的东东, 想高亮什么就高亮什么, 用vim就是这么自信. 所谓的语法文件就是vim用来高亮各种源文件的一个脚本, vim靠这个脚本的描述来使文件中的不同文本显示不同的颜色, 比如C语言的语法文件放在类似于这样的一个路径中:
/usr/share/vim/vim64/syntax/c.vim
其他语言的语法文件也可以在这个路径中找到, 你的也许不在这个路径中, 不管它, 在你自己的HOME下新建一个语法文件, 新建一个空文件: ~/.vim/syntax/c.vim 在其中加入
\\
\syn match cFunction
\me=e-2 syn match cFunction
\me=e-1
hi cFunction gui=NONE guifg=#B5A1FF
\\
\\
syn match cMathOperator display \ \
syn match cPointerOperator display \\\|\\.\ \
syn match cLogicalOperator display \ syn match cLogicalOperator display \ \
syn match cBinaryOperator display \\\(&\\||\\|\\^\\|<<\\|>>\\)=\\=\
syn match cBinaryOperator display \ syn match cBinaryOperatorError display \ \More C logical operators - highlight in preference to binarysyn match cLogicalOperator display \\\|||\ syn match cLogicalOperatorError display \\\(&&\\|||\\)=\
\
hi cMathOperator guifg=#3EFFE2
http://blog.csdn.net/wooin?
6
hi cPointerOperator guifg=#3EFFE2 hi cLogicalOperator guifg=#3EFFE2 hi cBinaryOperator guifg=#3EFFE2 hi cBinaryOperatorError guifg=#3EFFE2 hi cLogicalOperator guifg=#3EFFE2 hi cLogicalOperatorError guifg=#3EFFE2
再打开你的C文件看看, 是不是又明亮了许多. 还有一个压箱底的要告诉你, 如果你自己增加了一个类型或者结构之类的, 怎么让它也象\的文件~/.vim/syntax/c.vim中添加下面的东东:
\\
\syn keyword cType My_Type_1 My_Type_2 My_Type_3
这样你自己的类型My_Type_1, My_Type_2, My_Type_3就也可以向\这样的缺点是每增加一个类型, 就要手动在这里添加一下, 如果有人知道更简单的方法请一定一定要告诉我, 用下面的地址: Email
: lazy.fox.wu#gmail.com
Homepage : http://blog.csdn.net/wooin5 在程序中跳来跳去: Ctags 的使用
哇, 这下可厉害了, Tag文件(标签文件)可是程序员的看家宝呀, 你可以不用它, 但你不能不知道它, 因为Linux内核源码都提供了\Tag文件.
tags文件是由ctags程序产生的一个索引文件, ctags程序其是叫\Unix上面ctags程序的替代品, 并且比它功能强大, 是大多数Linux发行版上默认的ctags程序. 那么tags文件是做什么用的呢? 如果你在读程序时看了一个函数调用, 或者一个变量, 或者一个宏等等, 你想知道它们的定义在哪儿, 怎么办呢? 用grep? 那会搜出很多不相干的地方. 现在流行用是的
你现在先别急着去按
http://ctags.sourceforge.net, 下载一个类似 ctags-5.6.tar.gz 的文件下来(现在好像5.7版的也出来了, 不过我还没用过):
用下面的命令解压安装: $ tar -xzvf ctags-5.6.tar.gz $ cd ctags-5.6 $ make
http://blog.csdn.net/wooin?
7
# make install // 需要root权限
然后去你的源码目录, 如果你的源码是多层的目录, 就去最上层的目录, 在该目录下运行命令: ctags -R
我现在以 vim71 的源码目录做演示 $ cd /home/wooin/vim71 $ ctags -R
此时在/home/wooin/vim71目录下会生成一个 tags 文件, 现在用vim打开 /home/wooin/vim71/src/main.c $ vim
/home/wooin/vim71/src/main.c 再在vim中运行命令:
:set
tags=/home/wooin/vim71/tags
该命令将tags文件加入到vim中来, 你也可以将这句话放到~/.vimrc中去, 如果你经常在这个工程编程的话.
下面要开始真刀实枪的开干了, 如下图, 将光标放在setmouse()函数上
(--- 图3 ---)
http://blog.csdn.net/wooin?
8
此时按下
(--- 图4 ---)
如果此时你还想再跳回刚才的位置, 你还可以按
此时在回头学习一下第3节中说的vim手册吧 :help usr_29
不过还有一个小瑕疵, 你修改程序后, 比如增加了函数定义, 删除了变量定义, tags文件不能自动rebuild, 你必须手动再运行一下命令: $ ctags -R
使tags文件更新一下, 不过让人感到欣慰的是vim不用重新启动, 正在编写的程序也不用退出, 马上就可以又正确使用
: lazy.fox.wu#gmail.com
Homepage : http://blog.csdn.net/wooin6. 教你高效地浏览源码 -- 插件: TagList
http://blog.csdn.net/wooin?
9
下载地址 版本 安装 手册
http://www.vim.org/scripts/script.php?script_id=273 4.4
在 ~/.vim 目录下解压taglist_xx.zip :help taglist.txt
在Windows平台上用过Source Insight看程序的人肯定很熟悉代码窗口左边那个Symbol窗口, 那里面列出了当前文件中的所有宏, 全局变量, 函数名等, 在查看代码时用这个窗口总揽全局, 切换位置相当方便, 今天告诉你一个vim的插件: Taglist, 可以同样实现这个功能.
上一节已经告诉你ctags的用法了, ctags的基本原理是将程序程序中的一些关键字(比如:函数名, 变量名等)的名字, 位置等信息通过一个窗口告诉你, 如果你已经安装好taglist, 则可以用下面的命令看看taglist自带的帮助文件: :help taglist.txt
下面是我翻译的其中的第一段\taglist, 翻译的不好, 请指教: \List\Vim插件, 这个插件可以让你高效地浏览各种不同语言编写的的源代码, \
* 在Vim的一个垂直或水平的分割窗口中显示一个文件中定义的tags(函数,
类, 结构,
变量, 等)
* 在GUI Vim中, 可以选择把tags显示在下拉菜单和弹出菜单中
* 当你在多个源文件/缓冲区间切换时, taglist窗口会自动进行相应地更新. 当你打开新文件时, 新文件中定义的tags会被添加到已经存在的文件列表中, 并且所有文件中定义的tags会以文件名来分组显示
* 当你在taglist窗口中选中一个tag名时, 源文件中的光标会自动跳转到该tag的定 义处
* 自动高亮当前的tag名
* 按类型分组各tag, 并且将各组显示在一个可折叠的树形结构中 * 可以显示tag的原始类型和作用域
* 在taglist窗口可选择显示tag的原始类型替代tag名 * tag列表可以按照tag名, 或者时间进行排序
* 支持以下语言的源文件: Assembly, ASP, Awk, Beta, C,
C++, C#, Cobol, Eiffel, Erlang, Fortran, HTML, Java, Javascript, Lisp, Lua, Make, Pascal, Perl, PHP, Python, Rexx, Ruby, Scheme, Shell, Slang, SML, Sql, TCL, Verilog, Vim and Yacc.
* 可以很简单的扩展支持新的语言. 对新语言支持的修改也很简单.
* 提供了一些函数, 可以用来在Vim的状态栏或者在窗口的标题栏显示当前的tag名 * taglist中的文件和tags的列表可以在被保存和在vim会话间加载 * 提供了一些用来取得tag名和原始类型的命令 * 在控制台vim和GUI vim中都可以使用
* 可以和winmanager插件一起使用. winmanager插件可以让你同时使用文件浏览器,
http://blog.csdn.net/wooin?
10