zoukankan      html  css  js  c++  java
  • 使用vim代替IDE

    放弃IDE,用VIM进行c/c++程序开发

    老廖曾经在PHPER杂志上发表过一篇文章叫做用VIM做PHP开发环境,在里面详细介绍了用VIM做php开发需要做的准备,这篇文章就结合一些资料和我自己的一些经验来介绍下用VIM做C/C++开发需要做的事情,相对来说要比做php开发方便些。

    前提条件是当然是你已经下载了VIM,如果没有的话请先到官方网站下载最新版本,地址是:http://www.vim.org/download.php

    帮助文档下载地址::http://vimcdoc.sourceforge.net/

    首先从视觉方面:

    第一个要做的是缩进,修改你的VIM配置文件_vimrc,在最后加入set cindent,这样就设置了c风格的缩进,在这里缩进的大小是shiftwidth的值。

    第二个要做的是语法高亮,这个是必须的,在中_vimrc加入syntax enable

    第三个要做的字体的设置,设置一个舒服的字体可以让你编程的时候舒服好多,用editplus的时候我就用的Consolas,在vim中我还是用的这种字体,在_vimrc中加入

    if has(”gui_running”)
    set guifont=Consolas:h9
    endif

    表示运行界面vim的时候就用这种字体。

    第四,设置配色方案,可以到点击这儿下载,然后放到$VIM"vimfiles"colors这个目录下,然后在中加入如下配置

    if has(”gui_running”)
    set guifont=Consolas:h9
    ” set color schema
    colorscheme 
    colorscheme_name
    endif

    colorscheme_name为你需要设置的配色方案的名称。

    接下来是在运行程序中用到的:

    第一,使用ctag

    VIM中已经带了Ctags这个程序。尽管ctags也可以支持其它编辑器,但是它正式支持的只有VIM。Ctags可以帮助程序员很容易地浏览源代码。用下面的命令可以在源代码的根目录下创建“tags”文件:

    [/home/brimmer/src]$ ctags -R

    “-R”表示递归创建,也就包括源代码根目录下的所有子目录下的源程序。“tags”文件中包括这些对象的列表:

    l        用#define定义的宏

    l        枚举型变量的值

    l        函数的定义、原型和声明

    l        名字空间(namespace)

    l        类型定义(typedefs)

    l        变量(包括定义和声明)

    l        类(class)、结构(struct)、枚举类型(enum)和联合(union)

    l        类、结构和联合中成员变量或函数

    VIM用这个“tags”文件来定位上面这些做了标记的对象,下面介绍一下定位这些对象的方法:

    1)        用命令行。在运行vim的时候加上“-t”参数,例如:

    [/home/brimmer/src]$ vim  -t  foo_bar

    这个命令将打开定义“foo_bar”(变量或函数或其它)的文件,并把光标定位到这一行。

    2)        在vim编辑器内用“:ta”命令,例如:

    :ta foo_bar

    3)        最方便的方法是把光标移到变量名或函数名上,然后按下“Ctrl-]”。用“Ctrl-o”退回原来的地方。

    注意:运行vim的时候,必须在“tags”文件所在的目录下运行。否则,运行vim的时候还要用“:set tags=”命令设定“tags”文件的路径,这样vim才能找到“tags”文件。

    你还可以选择使用taglist这个插件,这个插件可以在右侧显示函数,变量等的列表

    第二,改正程序中的错误

    在VIM编辑器的环境下用“:make”(make工具的使用已经在我昨天的文章中 提到的云风的几篇文章中详细介绍到)就可以编译程序,当然其前提是在当前目录下有Makefile文件。运行完“:make”之后,如果程序中有错误,就 会显示出来。这时候,光标会自动指向第一个出现错误的地方,而且你还可以看到错误的提示。然后,你就可以改正错误,而不用手工找到出错的那一行。记住下面 几个有用的命令:

    l        “:cl”列出错误

    l        “:cn”让光标指向下一个错误

    l        “:cp”让光标指向上一个错误

    l        “:cnew”从头开始

    你甚至可以让VIM识别出其它编译器而不是gcc的错误提示。这对一些开发嵌入式系统的程序员这很有用,因为他们很可能用的不是gcc而是其它编译器。通过设置“errorformat”的值,可以让VIM识别出编译器的出错提示。因为不同的编译器的出错提示是不同的,所以如果用的不是gcc就要重新设置。

    errorformat”的值是一个字符串,它的格式和C语言的scanf的字符串格式相识。

    gcc的“errorformat”的值为:%f:%l:"%m。其中“%f”表示文件名,“%l”表示行号,“%m”表示出错信息。

    用“:h errorformat”查看详细的帮助信息。

    “:h quickfix”、“:h make”、“:h makeprg”、“:h errorfile”查看其它的信息。

    第三,使用快捷键

    下面的这些快捷键对程序员很有帮助:
    在函数中移动光标

    [[  转到上一个位于第一列的“{”

    ]]  转到下一个位于第一列的“{”

    {   转到上一个空行

    }   转到下一个空行

    gd  转到当前光标所指的局部变量的定义

    *   转到当前光标所指的单词下一次出现的地方

    #   转到当前光标所指的单词上一次出现的地方
    括号的匹配

    %   用来进行小括号、中括号和大括号的匹配。这要看当前光标指向的是什么符号了。

    结语:

    vim一直是一些牛人推荐的工具并一直存在着是有着道理的,她大大提高了我们的工作效率,如果你打算长期变成的话,花一个星期的时间来熟悉vim的使用时很有必要的!

  • 相关阅读:
    IOS调试下载的demo出现说项目不能在什么的SDK调试
    IOS手势基本用法
    IOS没有服务器断怎么调试Push代码
    VS Tips (Advance part)
    [转]如何理解C runtime library (C运行时库)
    Use AQTime to find the bottleneck of program module
    [转]Reflection: Discovery and Execution
    如何禁止生成stack对象或heap对象
    VS Tips (Basic part)
    栈对象、堆对象、静态对象的比较
  • 原文地址:https://www.cnblogs.com/hanyulcf/p/1863040.html
Copyright © 2011-2022 走看看