装编译器:
apt-get install gcc
apt-get install make
apt-get install autoconf
apt-get install automake
apt-get install libtool
apt-get install gdb
apt-get install g++
编辑器,我偏好使用vim,就装上了它
apt-get install vim
默认下,vim是没有语法染色的,
修改/etc/vim/vimrc
只要把syntax on的注释去掉就可以了。
想要让vim好用,还需要安装一些必须的插件,这里我引用两篇文章:
第一部分介绍了一些基本的 Vim 使用技巧。掌握这些技巧可以很大地提高编辑效率,但是 Vim
的强大功能并不仅限于此。Vim
还可以通过“插件”来进行功能扩展。精确地说,是通过脚本来进行扩展,脚本类型有插件、语法加亮、配色方案、文件类型检测等多种。大部分的脚本都是由
Vim 的用户写的,解决了用户身边的问题,使 Vim
变得更加有用。本章将介绍最常用的一些脚本,其中除了一个属于“语法加亮”脚本外,其它都属于“插件”类型。关于如何写脚本的一些基础知识将在下一部分进
行一些介绍。
作者:Bram Moolenar
网站脚本编号:无(包含在 Vim 的标准发布之中)
安装说明:无
功能说明:
该脚本使得 Vim 可以直接打开使用 gzip [1]、bzip2 [2] 和 compress [3] 压缩的文件(要求存在相应的命令行工具)。后缀为“.gz”、“.bz2”和“.Z”的文件会在打开时被动态解压缩,并在写操作时被自动重新压缩。
打开压缩文件时,屏幕上出现一个(不正确的)“[noeol]”的提示是正常的,不必进行理睬。
作者:Charles E. Campbell, Jr.(绰号 Dr. Chip)
网站脚本编号:1075(Vim 的标准发布之中可能包含一个较老的版本)
安装说明:
Vim 6.4 的标准发布带的版本是 42,较老、功能不齐全,但无须安装。建议:
1. 在 Vim 网站上下载版本 62(更新的版本只能用于 Vim 7);
2. 使用“tar xvfj netrw.tar.bz2 -C ~/.vim”解开;
3. 在Vim中运行“:helptags ~/.vim/doc”安装文档。
功能说明:
支持直接读写网络上的文件,支持的协议有 ftp、http、rsync、scp 等。比如,使用 FTP 协议以用户名 adah 打开服务器 server 上 ~/temp 目录下的 test.cpp 文件,可以直接在命令行上使用:
|
Vim会自动提示用户输入口令,然后打开文件。
更多的帮助内容请参考“:help netrw”。
作者:Charles E. Campbell, Jr.(绰号Dr. Chip)
网站脚本编号:195
安装说明:
在 Vim 网站上下载最新版本(engspchk.tar.gz);
使用“tar xvfz engspchk.tar.gz -C ~/.vim”解开;
在Vim中运行“:helptags ~/.vim/doc”安装文档。
提示替换拼写功能需要 agrep [4],可能需要另外下载安装。
功能说明:
一个Vim专用的拼写检查器,其最主要的特点是:
- 可以通过变量 spchkdialect 选择英语变体(英国、美国、加拿大),对于找不到的词、不常见的词、不在当前英语变体中的词以不同的方式加亮显示;
- 支持用户词典(保存在 .vim/CVIMSYN 目录中)和项目词典(保存在被检查文件所在的目录中);
- 对于源代码文件,只对注释进行拼写检查,而不会对你的变量名称胡乱提抗议;
- 通过词典文件可支持除英语以外的其它语言。
图 5 中的窗口里 engspchk
正在运行中。其中可以看到,红色部分是插件所不能识别的单词,黄色部分是当前英文变体(缺省是美国英语)中不正确的拼法,而青色部分是很少见的单词。图中
运行的是包含图形界面支持的 Vim,因而还可以看到一个名为 DrChip
的菜单项(参见图6),在其中可通过菜单选择拼写检查相关的各项功能;同时还能看到快捷键:“\ec”开始拼写检查,“\ee”结束拼写检查,“\ea”
选择替换拼写,等等。在文本模式的 Vim 中,我们一般就只使用这些快捷键了。
更多的帮助内容请参考“:help engspchk”。
作者:Yasuhiro Matsumoto
网站脚本编号:52
安装说明:
在 Vim 网站上下载文件 calendar.vim,存到 ~/.vim/plugin 目录中。
功能说明:
图 6 的下半部分就是 calendar
的运行示例,是直接在正常模式下键入“\caL”显示出来的。光标在该窗口中时,可使用左箭头或上箭头显示前一个月,右箭头或下箭头显示后一个月,“t”
回到“今天”,“q”关闭日历窗口。在有鼠标支持时,也可以使用鼠标在黄色字样的“Prev”、“Today”、“Next”上双击达到类似的效果。
除使用“\caL”外,“\cal”也可以打开一个日历窗口,但显示位置是在 Vim
的左侧而不是下方。另外,命令“:Calendar”效果和“\cal”相同,但其后可以跟参数:一个参数的话表示月份,两个参数的话则分别表示年份和月
份。“:CalendarH”与“:Calendar”类似,但日历窗口的打开位置和“\caL”(而不是“\cal”)一样,是在下方而不是左侧。
作者:Aric Blumer
网站脚本编号:69
安装说明:
1. 在 Vim 网站上下载最新版本(project-1.3.tar.gz);
2. 使用“tar xvfz project-1.3.tar.gz -C ~/.vim”解开;
3. 在 Vim 中运行“:helptags ~/.vim/doc”安装文档。
功能说明:
该插件可以把文件组织成一棵树的形式,以便于查找和管理。使用命令“:Project”即可打开一个用户的“项目文件”
(~/.vimprojects)。项目文件采用普通的文本文件的形式,非常易于浏览和修改。图 7
是一个示例。其中左边窗口部分的就是一棵项目树,完整内容如下:
|
在这个项目文件中存在两个项目:CvsMenu 和
Nvwa。引号中的内容表示路径,“CD=.”则表示打开该项目中的文件时,当前目录会更改到项目所在的目录。项目下面可以再分子项目,如 Nvwa
项目下有 doc 和 nvwa 两个子项目,没有“CD=.”表示打开子项目里的文件时不再更改当前目录。
图中并没有显示出完整的内容,因为其中的内容可以折叠(缺省打开项目文件时是完全折叠起来的,即在上面的例子中,只能看到两个项目的名字
“CvsMenu”和“Nvwa”)。在非文件名行上使用鼠标双击或回车键可以进行展开或折叠,在文件名行上使用鼠标双击或回车键则可以打开对应的文件。
更多的帮助内容请参考“:help project”。
2.6. taglist(源代码结构浏览)
作者:Yegappan Lakshmanan
网站脚本编号:273
安装说明:
1. 确保机器上有一个可用的 Exuberant Ctags 的版本(可以执行命令“ctags”)
2. 在 Vim 网站上下载 taglist(假设为 taglist.zip);
3. 使用“unzip taglist.zip -d ~/.vim”解开;
4. 在 Vim 中运行“:helptags ~/.vim/doc”安装文档。
虽然 taglist 使用 ctags,但并不要求 tags 文件的存在。
功能说明:
使用命令“:Tlist”启用/关闭 taglist,效果请先看一下图 8。Taglist 的主要特性有:
- 可以显示宏(macro)、函数(function)、变量(variable)、类型定义(typedef)、类(class)、结构(struct)等多种内容信息;
- 打开多个文件时,可以同时看到多个文件的结构信息;
- 在左边的 taglist 窗口显示的名称上双击鼠标或按回车键,右边主窗口中会跳转到相应的定义位置;
- 右边窗口中光标的位置改变,左边的窗口也会在 4 秒内(缺省值,参见“:help 'updatetime'”)黄色加亮显示相应的名称;
- 在启用/关闭 taglist 时,插件能够自动改变当前 Vim 窗口的大小(不管是文本模式的 Vim 还是图形界面的 Vim),除非使用“:let Tlist_Inc_Winwidth=0”关闭这一功能(当使用这一功能导致兼容性问题时)。
更多的帮助内容请参考“:help taglist”。
作者:Thorsten Maerz/吴咏炜
网站脚本编号:1245
安装说明:
1. 在 Vim 网站上下载文件 cvsmenu.vim,存到 ~/.vim/plugin 目录中;
2. 启动 gvim,在菜单中选择“CVS-Settings-Install-Install updates”(文本模式的 Vim 可以使用快捷键“,cgii”),从网上(SourceForge)的 CVS 中安装最新版本和帮助文档(此步骤可选)。
功能说明:
在 Vim 中集成 CVS [24]版本管理功能。该插件最初由 Thorsten Maerz 编写,在 2002
年以来没有再得到维护。我在 2005 年初开始使用这个插件后,非常喜欢它,修正了其中存在的错误,并一直维护该插件。如果大家发现有
bug,报告给我就可以了。
主要功能可在图 9 的菜单中看到:
- 了解 CVS 环境的基本信息和 cvsmenu 中的变量设定(参见图 10);
图 10
- 调整设定,安装更新版本;
- 插入 CVS 的可扩展关键字,如“$Date$”、“$Id$”;
- 对目录进行基本操作(cvs update 等);
- 接受附加参数的基本操作(文件比较等);
- 管理功能,如登录;
- 删除类操作;
- 打标签;
- 观察(跟踪)和编辑功能;
- 将本地文件和 CVS 中的文件进行比较(以 Vim 的分左右两列使用颜色加亮显示修改、增加、删除部分的比较方式;效果参见图 11);
图 11
- 显示文件每一行的更改人和更改时间(cvs annotate,参见图 12);
图 12
- 显示库的访问历史(cvs history);
- 显示文件修订日志(cvs log;参见图 13);
图 13
- 显示文件状态;
- 显示较短的文件状态;
- 根据本地信息显示文件状态(不访问库);
- 签出模块(cvs checkout);
- 查询更新;
- 更新,如有冲突会高亮显示(cvs update);
- 取消修改;
- 添加当前文件到 CVS 中(cvs add);
- 签入当前文件(cvs commit);
- 导入文件(cvs import);
- 添加并签入当前文件。
根据实际使用的需要,除了修订错误之外,我加入了一些编码相关的支持。拿一个最实际的情况,如果使用“set
encoding=utf-8”,但源代码中仍使用了 GBK 编码的中文字符,那么,必须在 .vimrc 中加入一行“let
g:CVScvsoutputencoding='gbk'”才能保证“cvs annotate”操作的结果是正确的。
Thorsten 把该插件的易用性设计得相当好。举例来说,在作文件比较时,按 Tab 可跳转到下一个不同处,左侧的比较窗口中按一下“q”即可关闭该窗口。更多的帮助内容请参考“:help cvsmenu”。
作者:Michael Geddes
网站脚本编号:5
安装说明:
1. 在 Vim 网站上下载最新版本(doxygen.zip);
2. 使用“unzip doxygen.zip”解开;
3. 执行“cp -p doxygen.vim ~/.vim/syntax”和“cp -p doxygen.txt ~/.vim/doc”复制文件到 Vim 目录下;
4. 在 Vim 中运行“:helptags ~/.vim/doc”安装文档。
5. 如果 ~/.vim/after/syntax 目录不存在,使用“mkdir -p ~/.vim/after/syntax”创建该目录;
6. 进入 ~/.vim/after/syntax 目录,使用下面三行创建语法文件之间的关联,使得在 C、C++ 和Java 文件中可以识别文档注释:
|
6. 可选地,看一下我的个人编程网页 [6] 下有没有对 doxygen.vim 的更新(里面包含有作者尚未并入到标准发布中去的我的更改——好奇的话,你可以在 doxygen.vim 文件中数一下,看一看 Wu Yongwei 的名字出现了几次:-))。
功能说明:
如果你用过文档注释,相信我不需要多说,看一下图 14你就知道这个脚本的功能了。如果你没有用过文档注释,强烈建议你到 Doxygen [7] 的网站上看一下,了解一下这个非常有用的工具。作为示例,可在 http://nvwa.sourceforge.net/doc/debug__new_8cpp.html#a17 看一下图中的代码使用 Doxygen 自动生成的 HTML 网页。
作者:Don Yang
网站脚本编号:1189
安装说明:
在 Vim 网站上下载文件 matrix.vim,存到 ~/.vim/plugin 目录中即可。
功能说明:
是的,说的就是电影 Matrix!Vim 的脚本并不是都干“正经事”的。想看一下电影里那些酷酷的字符在 Vim 的窗口里翻滚吗?发一个命令“:Matrix”即可(按任意键退出)。效果见图 15。
|
[1] The gzip home page: http://www.gzip.org/
[2] bzip2: http://www.bzip.org/
[3] Compress for UNIX: http://www.answers.com/compress#Wikipedia
[4] agrep: http://www.answers.com/agrep
[5] CVS-Concurrent Versions System: http://www.nongnu.org/cvs/
[6] Wu Yongwei's Programming Page: http://wyw.dcweb.cn/
[7] Doxygen: http://www.stack.nl/~dimitri/doxygen/
另外一片:
以下是滇狐收集和整理的一些有用的 VIM 插件, 大部分插件都有自己详细的说明书,因此这里就不详细介绍每个插件的安装和使用方法了。
通过这些插件, VIM 能够变成一个非常强大的平台, Happy VIMming! 如果想详细了解默认的插件插件安装路径,请看这里。
1 程序设计
1.1 Tag List
下载地址: 官方站点
官方描述: The “Tag List” plugin is a source code browser plugin for
Vim and provides an overview of the structure of source code files and
allows you to efficiently browse through source code files for different
programming languages.
滇狐评价: 这是一个非常非常非常非常重要的插件, 有了它, 我们才能够在 VIM 中查看一个文件中包含的函数列表, 或是一个类包含的方法列表, 为编程人员提供了极大方便。推荐大家一定要安装!
安装注意事项: 有的系统内置的 ctags 功能太弱, 推荐大家安装 EXUBERANT CTAGS, 这个东西功能比较强大, 居然连 HTML 里面内嵌的 Java Script 都能够支持, 实在是匪疑所思!
滇狐个人习惯: 滇狐习惯把方法列表放在屏幕的右侧, 于是在 .vimrc 中设置了
let Tlist_Use_Right_Window=1
另外, 滇狐习惯让当前不被编辑的文件的方法列表自动折叠起来, 这样可以节约一些屏幕空间,于是在 .vimrc 中设置了
let Tlist_File_Fold_Auto_Close=1。
1.2 A
下载地址: 官方站点
官方描述:
A few of quick commands to swtich between source files and header files quickly.
:A switches to the header file corresponding to the current file being edited (or vise versa)
:AS splits and switches
:AV vertical splits and switches
E.g. if you are editing foo.c and need to edit foo.h simply
execute :A and you will be editting foo.h, to switch back to foo.c
execute :A again.
滇狐评价: 第一眼看到这个东西时, 总觉得它功能太简单, 似乎没有什么用处。用过之后, 才发现这项功能对于一个程序员来说是如何重要!
1.3 Win Manager
下载地址: 官方站点
官方描述: winmanager is a plugin which implements a classical windows
type IDE in Vim-6.0. Basically, you have the directory tree and the
buffer list as 2 windows which stay on the left and the editing is done
in a seperate area on the left. People have already made excellent File
and Buffer explorers seperately and I thought that it might be a cool
idea to combine them both. winmanager.vim combines the standard File
Explorer which ships with Vim 6.0 and a Buffer Explorer written by Jeff
Lanzarotta into one package.
滇狐评价: 非常好用的东西, 在屏幕上打开一个文件浏览器, 这样就可以方便地选择要编辑的文件了。
默认情况下, winmanager 依赖于 bufexplorer,到这里下载。如果你不喜欢 bufexplorer 插件的话 可以在你的 .vimrc 中添加这条命令禁用它:
let g:winManagerWindowLayout ="FileExplorer"
这样就不需要下载该插件了。
滇狐为 winfileexplorer.vim 加了一个补丁,
提供了使用系统默认打开方式打开选中文件的功能,只要把光标放在想要打开的文件上, 然后按“S”就可以了 (注意是大写)。这样以后就可以直接在
gvim 里打开 xmms, 不用再切换出来找 konqueror 了。
1.4 gdbvim
下载地址: 官方站点。
官方描述: You have one window with (g)vim open, other window with gdb
running. When you reach source line in your code, it appears in the vim
window. In the opposite direction, you can send commands from vim to
gdb (e.g., set breakpoints on given line).
滇狐评价: 该插件意义很重大, 为我们在 VIM 中调试程序提供了可能。 虽然功能还非常少,但已经足以解决平常的大部分需求了。
原始版本问题比较多, 例如只能添加断点,不能删除断点, 滇狐为该插件添加了删除已加断点的功能。
另外快捷键的设置也比较不快捷,滇狐又顺便把相应的快捷键修改了一下, 现在用起来已经比较顺畅了, 放出来给大家参观一下,以便继续改进。 目前只在
Linux 下调试通过, 其它平台未经测试, 感兴趣的朋友可以在其它平台下测试,并汇报测试结果。
需要继续增加的功能: 下一步滇狐准备再给这个插件加上保存所有断点的功能,这样下次调试的时候就不用重新设置断点了。 另外,
目前查看变量的值时,只能把结果打印到 console 窗口中, 滇狐希望在下一个版本中能够把查看结果抓取到 VIM 中显示。 VIM
网站上给出了把所有结果抓取到 VIM 中的实现, 但那不是滇狐希望的结果。滇狐最希望得到的结果是使用 tooltip 显示变量结果,
另外能够再提供一个 watch 窗口, 时刻监视变量的值, 以后慢慢实现吧。
安装注意事项: gdbvim 脚本是使用 Perl 语言编写的, 因此需要安装 Perl。为了方便你的使用, 建议在 $PATH
路径下添加一个指向 plugin/gdbvim
脚本的符号链接, 或者直接将该文件复制到 $PATH
路径下,滇狐推荐前者。 还有, 最好在你的 .vimrc 中 set noshowcmd
,否则大量的“请按 ENTER 继续”会把你活活烦死。 另外, 滇狐 patch 过的脚本依赖 multvars.vim,如果你使用滇狐版的话, 需要再安装这个插件。
使用方法: 编译你的程序时加上 -g
参数生成调试信息, 然后使用“gdbvim <你的程序名>
”启动 gdbvim, gdbvim 会自动启动一个 gvim。 将 gvim 最大化, 然后就可以使用 Gdb 菜单或快捷键添加断点、 单步调试程序、 查看变量值了。
1.5 jad
下载地址: 无。 自己将代码复制粘贴回去, 保存为 $HOME/.vim/plugins/jad.vim:
augr class au! aubufreadpost,filereadpost *.class %!jad -noctor -ff -i -p %aubufreadpost,filereadpost *.class setreadonlyaubufreadpost,filereadpost *.class setft=java aubufreadpost,filereadpost *.class normal gg=G aubufreadpost,filereadpost *.class setnomodifiedaubufreadpost,filereadpost *.class setnomodifiableaugr END
官方描述: (无)
滇狐评价: 挺好玩的插件, 不过似乎也只是好玩而已。 安装了之后可以直接双击打开 .class 文件, VIM 会自动调用 jad 把文件反编译了。
安装注意事项:需要先安装一份 jad。
1.6 cscope_maps
下载地址: 官方站点
官方描述: Cscope is a very handy tool, but it’s even better when you
don’t ever have to leave the comfort of your favorite editor (i.e. Vim)
to use it. Fortunately, Cscope support has been built into Vim.
滇狐评价: 滇狐目前 cscope 用得不如 ctags 多, 许多功能都不大熟。 不过既然大家都说好,那还是装着玩玩吧。
安装注意事项: 需要安装 cscope。
1.7 project
下载地址: 官方站点
官方描述: You can use this plugin’s basic functionality to set up a
list of frequently-accessed files for easy navigation. The list of files
will be displayed in a window on the left side of the Vim window, and
you can press <Return> or double-click on filenames in the list to
open the files. This is similar to how some IDEs I’ve used work. I find
this easier to use than having to navigate a directory hierarchy with
the file-explorer. It also obviates the need for a buffer explorer
because you have your list of files on the left of the Vim Window.
滇狐评价: 食之无肉,弃之有味。
安装注意事项: 几乎没怎么用过, 所以暂时没有发现需要注意的地方。
2 文档编写
2.1 VIM LaTeX Suite
下载地址: 官方站点
官方描述:
Vim is undoubtedly one of the best editors ever made. LaTeX is an
extremely powerful, intelligent typesetter. Vim-LaTeX aims at bringing
together the best of both these worlds.
We attempt to provide a comprehensive set of tools to view, edit
and compile LaTeX documents without needing to ever quit Vim. Together,
they provide tools starting from macros to speed up editing LaTeX
documents to compiling tex files to forward searching .dvi documents.
See the features page for a brief tour of the various features in
LaTeX-suite. All these features can be tuned extensively using the
included texrc file. The screenshots page shows you how a typical
working session with LaTeX-suite might progress.
LaTeX-suite is made for Vim versions 6.0 and above. Installation instructions are given in the download page.
滇狐评价: 实在是非常非常非常非常好的一个插件! 用 VIM 写 LaTeX 的朋友无论如何都要试一试,不用 VIM 写 LaTeX 的朋友也要试一试, 说不定你会改变你的主意, 改用 VIM 写 LaTeX。
安装注意事项: 如果使用 gvim 的话, 需要注意 scim 可能会和 LaTeX Suite 有冲突。 解决方法是要么把
scim 的 on the spot 功能去掉, 或者把 gtk_im_module 设为 scim。 (较新版本 scim 建议第二种方案)。
另外, 为了提高工作效率, 强烈建议配置 VIM 的LaTeX 正向、反向搜索功能。
2.2 sketch
下载地址: 官方站点
官方描述: Sketch.vim – Line drawing/painting using the mouse. Based on an idea by Morris.
滇狐评价: 很好玩, 虽然用到的时候不多, 但真一旦用到了, 还是会觉得这个东西很有用的。
安装注意事项: 建议在 .vimrc 中把 call ToggleSketch() 映射为命令,方便一些:
command - nargs = 0 ToggleSketch call ToggleSketch()
3 日常生活
3.1 Calendar
下载地址: 官方站点
官方描述: This script create calender window. This don’t use the external program (cal).
滇狐评价: 安装完毕后使用 :Calendar 命令打开一个垂直的日历窗口, 使用 :CalendarH 命令打开水平的日历窗口。 应该还是比较有用的。
安装注意事项: 滇狐个人喜欢把日记的扩展名改成 .txt, 默认的是 .cal。在 calendar.vim 里面查找替换一下就可以了。 另外, 可以在 .vimrc 里面修改日记所在的路径,默认是 ~/diary。
let g:calendar_diary=<PATH>
3.2 vimtips
下载地址: 官方站点
官方描述:
Whenever you start Vim (but no more than daily) the script will
open a help window with a Vim tip. You must download the tips
separately, from 官方站点
After installation, you can get the next tip with
:TipOfTheDay
滇狐评价: 每天看一条,慢慢就变成 VIM 牛了。
安装注意事项: 暂时没发现。
3.3 ViKi
你现在看到的这张网页就是使用 ViKi 制作的。 也许它不漂亮, 但是很清秀, 而且添加信息非常方便。 是 ViKi 将滇狐从繁重的 Html 编辑工作中解放出来, 使滇狐有足够的勇气重新开始制作个人主页。 为了更好地说明 ViKi,滇狐将该插件的使用单独放到另一张网页中。