标签归档:c

RSS feed of c

最后更新于 .

之前已经详细的介绍了在 vim中使用ctags ,这篇文章我们就来详细介绍一下如何在vim中使用cscope。

首先,我们还是了解一下什么是cscope。

简单来讲,cscope主要用来协助浏览C/C++语言,他的功能要强大于ctags,不仅支持变量/函数的定义查询,还记录了函数的调用处查询等功能,所以也有说法称cscope的诞生就是为了取代ctags。

无论这个说法是否有据可依,对使用方来说,当然是希望功能越强大方便越好啦,所以这也是我们为什么讲ctags和cscope都装上的原因啦。

第二,我们来说一下vim的支持。

cscope没有ctags那么幸运,cscope在大部分的linux下的vim中是没有提供支持的(但是在windows下的gvim都提供了支持),所以,如果你打算要在linux下面使用vim+cscope,那么1,你要下载安装cscope。2,你要重新编译vim,加上支持选项: --enable-cscope 。

当然,cscope也提供了windows版(否则windows下gvim怎么和cscope搭配嘛...),分别下载地址如下:

cscope(linux):http://cscope.sourceforge.net/
cscope(windows):http://sourceforge.net/projects/mslk/files/

当然,安装的最后一步就是,不要忘记讲cscope放进的环境变量里!

第三,好了 ...

最后更新于 .

好了,接着前面的两篇,我们今天来写《把VIM打造成一个真正的IDE》系列的终结篇。

我们之前已经让在VIM下看代码变得方便与简单,现在我们来让用Vim写代码也一样方便~看完本篇之后,你就可以完全抛弃sourceinsight之类的工具啦~

3)omnicppcomplete.vim

实现写C/C++语言时自动补全  下载插件

惯例,先截图:

其实使用很简单,下载 omnicppcomplete 然后按照说明将插件安装到vimfiles下面,目录结构如下:

after\ftplugin\cpp.vim
after\ftplugin\c.vim

autoload\omni\common\debug.vim
                    \utils.vim

autoload\omni\cpp\complete.vim
                 \includes.vim
                 \items.vim
                 \maycomplete.vim
                 \namespaces.vim
                 \settings.vim
                 \tokenizer ...

最后更新于 .

OK,上一篇文章,我们已经配置好了一个可以正常使用的VIM,那么在我们真正来到程序员的VIM世界之前,希望你能在VIM里面再多加下面几个配置。

set go= "无菜单、工具栏

对,让我真正抛弃鼠标,进入美妙的VIM之旅吧!

首先说说一个IDE应该有的几个功能:

1)源代码结构及函数列表

2)变量定义支持跳转等

3)代码自动补全 当然VIM还给了我们几个小惊喜:

4)快速批量注释与反注释

5)由注释直接生成文档

6)文件头作者信息自动添加

7).cpp和.h文件之间的快速切换

那么接下来,我们久来看看我们将会用到的插件列表。

首先介绍一下一些必备知识,我们需要下面两样东西,来辅助完成vim成为IDE的大业--ctags和cscope,这两样东西不是vim的插件而是可执行程序,linux和windows下都有。ctags主要实现了c、c++、java、c#等语言的智能分析,并声称tags文件,后面所有的包括函数列表显示,变量定义跳转,自动补全等,都要依赖于他。

有了tags文件后,只需要在变量上按下 CTRL + ]键,就可以自动跳到变量定义的位置。

而cscope据说诞生就是为了来替代ctags的,因为他有着比ctags更加强大的功能,举个例子,ctags只能分析出这个函数在哪里被定义 ...

最后更新于 .

其实VIM自己定义了一些操作快捷键来实现各种语言的方便编写,只是之前居然一直都没有发现,写在这里也帮大家参考一下~~

ci[ 删除一对 [] 中的所有字符并进入插入模式
ci( 删除一对 () 中的所有字符并进入插入模式
ci< 删除一对 <> 中的所有字符并进入插入模式
ci{ 删除一对 {} 中的所有字符并进入插入模式
cit 删除一对 HTML/XML 的标签内部的所有字符并进入插入模式
ci" ci' ci` 删除一对引号字符 (" 或 ' 或 `) 中所有字符并进入插入模式

使用了之后,用vim写c/c++/php/html高了很多。进一步演化,还能有些实用的组合:

vi[ 选择一对 [] 中的所有字符
vi( 选择一对 () 中的所有字符
vi< 选择一对 <> 中的所有字符
vi{ 选择一对 {} 中的所有字符
vit 选择一对 HTML/XML 的标签内部的所有字符 ...

最后更新于 .

这里所说的IDE主要是指C/C++开发,但是由于笔者之前也搞java和c#开发,所以对这两种语言也会有所兼顾。

这个话题可能要分好几篇文章来写了,今天主要讲一下最简单的,包括vimrc里面的基本配置,让vim能够完美支持各种源码文件;

vimrc配置如下(为简单起见,采取注释的方式直接说明):

if(has("win32") || has("win95") || has("win64") || has("win16")) "判定当前操作系统类型
    let g:iswindows=1
else
    let g:iswindows=0
endif
set nocompatible "不要vim模仿vi模式,建议设置,否则会有很多不兼容的问题
syntax on"打开高亮
if has("autocmd")
    filetype plugin indent on "根据文件进行缩进
    augroup vimrcEx
        au!
        autocmd FileType text ...

最后更新于 .

虽然VIM自7.0之后对双字节的编码已经支持的很不错了,但是,还是需要一些配置才能完全实现的哦。 要解决的问题: 1.识别双字节编码格式 需要先了解的知识: vim中的内置变量: enc(encoding):vim的内部编码 fenc(fileencoding):vim解析出来的当前文件编码(有可能解析成错的哦) fencs(fileencodings):vim解析文件时猜测的编码格式顺序列表 需要的配置: 1.vimrc中的代码如下:

set encoding=utf-8
set fenc=cp936
set fileencodings=cp936,ucs-bom,utf-8
if(g:iswindows==1)
    source $VIMRUNTIME/delmenu.vim
    source $VIMRUNTIME/menu.vim
    language messages zh_CN.utf-8
endif
if v:lang =~? '^\(zh\)\|\(ja ...

最后更新于 .

前言: 用vim也有几年了,从windows开发到Linux,从在校大学生到在职员工,始终想为这个过程记录点什么,为一直陪伴自己的vim,也为自己。

之前在百度贴吧混迹过,结果发的代码全被判定为非法字符,于是打消了在百度发展的计划,而只在上面留了一个QQ号码,结果问问题的人却络绎不绝,我想也许,是该开个博客,不敢说教授,就是分享一下自己的经验吧,希望对感兴趣的各位有所帮助。

这是这个博客的第一篇日志,所以就写个Vimer们经常会遇到的一个需求吧----一键编译单个源文件。ps:本站所有文章都是直接通过vim编写的哦。

具体功能如下:

1.按F5编译单个文件,支持C,C++,C#,也可以支持java。

2.获取编译器错误描述,在错误描述上回车,可以直接跳转到错误行。

先贴上代码,可以看出,我把C#相关的注释掉了,实际上C#也是支持的,只是后来由于不再做C#相关开发,有需要的朋友可以去掉注释,还是可以编译C#的。

"单个文件编译
map <F5> :call Do_OneFileMake()<CR>
function Do_OneFileMake()
    if expand("%:p:h ...