用Vim搭建C/C++开发环境
李若老师曾经说:世界上的程序员分三种,一种是用Emacs,一种是用Vim的,其它的归为第三种。其意是说如果一个程序员两者都不用的话,那大抵是不能
归为入流者行列的。对使用C/C++的人来说,很多人喜欢Emacs,据说与对Stallman的崇拜与爱屋及乌有关;-) 当然,Emacs与Vim虽
然在文本编辑方面的性能是等价的,但使用起来两者还是有很大的不同:Vim是为程序员而开发的,功能强大而实用;Emacs除了文本编辑之外,作为
Unix下的“第一个人工生命”,还可以通过插件完成各种包括听mp3,发邮件,甚至煮咖啡的操作,所以,Emacs更像是一种“生活方式”。言归正传,
我个人是用Vim的,在编写C/C++的程序时,只用Vim自身的功能还是不太爽的,还需要其它的插件,将其构造成一个比VC爽得多的IDE。由于每个工
具介绍清楚都不是一两句话说得完的,以下只列出插件的名称,具体的内容google之即可;-)其中vim插件可以到VIMer最常去的www.vim.org
下载
Ctags,非vim插件。Ctags是Vim必不可少的工具,它可以将C/C++的宏、变量、函数、类等一系列信息提取出来,以方便切换。Ctags还可以使用更强大的cscope代替。
Taglist,Vim插件。Taglist是与ctags的配合的vim的强大工具之一,其功能是将当前buffer的所有信息作成一个列表放在旁边,随时可以切换。
omnicppcomplete,Vim插件。其功能顾名思义就是自动补全工具(可不是简单的Ctrl+N哦),比如定义了一个类叫myClass,生成一个实例myClass c; 那么输入c.之后就可以出现一个框,里面是c所有的成员函数。
csupport,Vim插件。这是一个非常好的C/C++ ide,有了它什么编译运行一键搞定,定义一个类一键就可以给出一个模板格式,相当实用。
clewn,
非Vim插件。其用处是联结vim与gdb(没听说过gdb?google补个课吧~)。在打开clewn的时候,它利用NetBeans,把gVim与
gdb无缝地联结起来,还可以像matlab一样,在调试的时候把鼠标放在变量名上,就会有一个ballon出来显示这个变量的指,炫吧?谁说只有
emacs才能与gdb结合的好?另外它的另外一个替代品是VimGdb,这是个Vim插件。
Doxygenkit。注释与文档合二为一的最强工具当然是Doxygen,有了Doxygenkit,用Vim写Doxygen格式一键搞定。
至此,我定制的Vim的C/C++IDE就搞定了,用起来比VC那个真是爽不知多少倍了。除了以上的插件外,Vim常用的还有Vimshell,project等工具,都有很炫的效果,请各位VIMers 自己体会吧:)
相关文档:
继前篇《Import Module》(http://blog.csdn.net/xiadasong007/archive/2009/09/02/4512797.aspx),继续分析嵌入部分基础知识。这次不多说,有什么问题记得多查英文资料,国内的这方面知识少
还是来看代码,写完我就睡觉了~
#include "python/python.h"
#include <iostream>
using namespace std;
int ......
由于程序运行时占用的内存过大,所以想办法给程序瘦身。
在调试中发现结构体占用的size竟然和预想的不一样,原来……
看看下面讲的吧,肯定会不枉此看哦!
1,比如:
struct{
short a1;
short a2;
short a3;
}A;
struct{
long a1;
short a2;
}B;
sizeof(A)=6, sizeof(B)=8,为什么?
注:sizeof(sho ......
由于程序运行时占用的内存过大,所以想办法给程序瘦身。
在调试中发现结构体占用的size竟然和预想的不一样,原来……
看看下面讲的吧,肯定会不枉此看哦!
1,比如:
struct{
short a1;
short a2;
short a3;
}A;
struct{
long a1;
short a2;
}B;
sizeof(A)=6, sizeof(B)=8,为什么?
注:sizeof(sho ......
#pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。
#pragma 指令对每个编译器给出了一个方法,在保持与C 和C ++语言完全兼容的情况下,给出主机或操作系统专有的特征。
依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。
一、#pragma message
#pragma ......