`
evget
  • 浏览: 144734 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
文章分类
社区版块
存档分类

用VIM编写C/C++程序

阅读更多
文章关键字:|VIM|C|C++|Unix|

    Vi是Unix下最常用的文本编辑器。VIM(Vi IMproved)则是它的增强版。有人常常拿VIM和emacs比较,VIM尽管不象emacs那样有那么多的功能,但是比emacs更方便、好用。用过emacs的人肯定会为emacs的一些快捷键感到烦恼,有时候用真希望自己有八只手。VIM的学习曲线也不象emacs那么长,只要看看VIM自带的 vitutor,大约只要20分钟就能掌握VIM的用法。

    对于Unix下的C/C++的程序员,我推荐你们使用VIM+Ctags的组合来写程序。其中原因听我慢慢道来。(下面对VIM的介绍主要是针对5.6以后的版本)

VIM支持语法制导和自动缩进

     VIM会根据文件的后缀名,如:*.c、*.cpp、*.cc,等,自动设置语法制导(Syntax Highlighting)。C/C++中的一些保留字,如:if、for、include,等等,就会有不同的颜色,这样就会减少程序员犯错的可能,阅读程序的时候相对来说也轻松很多。用下面这些命令在VIM中查看有关语法制导的帮助:“:h syntax”、“:h syn-qstart”、“:h syntax-printing”。

     VIM也支持根据GNU的风格自动缩进,这样程序员编写出来的代码就更易阅读,而且也有利于培养好的编程风格。用下面这些命令在VIM中查看有关自动缩进的帮助:“:h cindent”、“:h cinoptions”、“:h cinoptions-values”、“:h cinkeys”、“:h cinwords”。

使用ctags

     VIM中已经带了ctags这个程序。尽管ctags也可以支持其它编辑器,但是它正式支持的只有VIM。ctags可以帮助程序员很容易地浏览源代码。用下面的命令可以在源代码的根目录下创建“tags”文件:
[/home/brimmer/src]$ ctags -R
“-R”表示递归创建,也就包括源代码根目录下的所有子目录下的源程序。“tags”文件中包括这些对象的列表:

用#define定义的宏
枚举型变量的值 
函数的定义、原型和声明 
名字空间(namespace) 
类型定义(typedefs) 
变量(包括定义和声明) 
类(class)、结构(struct)、枚举类型(enum)和联合(union) 
类、结构和联合中成员变量或函数
    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”文件。

快速改正错误

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

“:cl”列出错误
“:cn”让光标指向下一个错误
“:cp”让光标指向上一个错误
“: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的配置文件是“.vimrc”,用这个文件可以配置VIM。VIM的图形界面的版本叫gvim。VIM也有用于Windows平台的版本。

VIM的资源

     VIM的主页:http://www.vim.org/。

原文地址:http://www.evget.com/zh-CN/Info/ReadInfo.aspx?id=9173
分享到:
评论

相关推荐

    vim配置C/C++开发环境.zip

    - 熟悉这些配置后,你需要实际编写C/C++代码来体验和调整配置,使其更符合个人习惯。 通过以上步骤,Vim就可以成为一个功能完备的C/C++开发环境,不仅提供了类似IDE的便利性,还保留了Vim轻量级和高效的特点。不过...

    linux c/c++基础学习资料(百度云链接和提取码)

    在Linux上开发C/C++程序,需要安装必要的开发工具,如GCC/G++编译器、Make工具、GDB调试器等。同时,理解环境变量、编译链接过程、动态库静态库的使用也是编程环境搭建的关键。此外,学会使用版本控制系统如Git进行...

    win下使用gvim编译C/C++安装包

    现在,你已经准备好使用GVim编写C/C++代码了。创建一个新的C++文件,例如`main.cpp`,然后输入你的代码。当你保存文件时,Syntastic会自动进行语法检查。要编译代码,可以使用`:!g++ % -o %命令,这会将当前文件编译...

    c/c++完整视频教程(三)——–Linux服务器编程

    根据提供的文件信息,本篇文章将围绕“C/C++完整视频教程(三)——Linux服务器编程”这一主题展开,深入解析该教程所涵盖的关键知识点。由于实际视频内容无法直接获取,以下解析将基于标题、描述及标签提供的信息...

    基于C/C++语言的简易vim编辑器 仿vim编辑器

    # 基于C/C++语言的简易vim编辑器 仿vim编辑器 1. 编辑器下有normal和insert两种模式。默认为normal模式,按i键进入insert模式,按esc退出insert模式。 2. normal模式下按 h j k l键向左上下右移动光标。 3. normal...

    c/c++嵌入式开发与linux命令大全

    在"C/C++嵌入式开发与Linux命令大全"这一主题中,我们涵盖了两个主要领域:C/C++编程语言以及在Linux环境下进行嵌入式系统开发所使用的命令行工具。C和C++是底层编程的基石,广泛应用于嵌入式系统的开发,而Linux...

    windows下使用vim(gVim)和gcc(MinGW):C/C++/Fortran/ObjC/Ada Compiler

    在Windows操作系统中,开发C、C++、Fortran、Objective-C和Ada等编程语言时,一个常见的选择是结合使用vim编辑器(或者其图形化版本gVim)和GCC编译器(通过MinGW安装)。MinGW(Minimalist GNU for Windows)是一个...

    C/C++学习的良好资源和开发环境

    - **教科书**:经典的C语言教材有K&R(《C程序设计语言》)和《C Primer Plus》,C++则有Stroustrup的《C++ Programming Language》。 - **在线教程**:像Codecademy、LeetCode、HackerRank等网站提供了互动式的...

    定义vim配置文件vimrc用于c/c++编程

    通过以上配置,vim可以更好地适应C/C++编程的需求,提高代码编写、阅读和调试的效率。不过,每个人的编程习惯不同,可以根据自己的需求调整这些设置,创建个性化的`.vimrc`文件。同时,还可以通过插件管理器(如...

    linux下编写最简单C++程序的过程屏幕录像

    在Linux环境下编写C++程序是许多初学者踏入编程世界的必经之路。本教程将通过"Ubuntu Movie.avi"这个屏幕录像,向你展示一个简单的C++程序编写过程。在这个过程中,我们将涉及以下几个关键知识点: 1. **Linux操作...

    Linux下安装Eclipse/JRE/CDT开发C/C++

    传统的Linux开发方式通常涉及使用文本编辑器(如vi/vim)编写代码,通过命令行使用gcc/g++进行编译,以及使用gdb进行调试。然而,这种方式对于大型项目和复杂调试可能效率较低。 2. **Eclipse IDE** Eclipse是一款...

    vim的配置文件主要是c c++的配置

    配置vim编写c c++ java 等程序,个人的一个vim配置,挺好用的,一直用

    Linux下的C/C++、python编程和shell编程

    "程序,你需要使用`vim`或你喜欢的编辑器打开一个新的文件,如`hello.c`,并输入以下代码: ```c #include int main() { printf("Hello world, Linux programming!\n"); return 0; } ``` 保存并退出后,使用`gcc...

    Ubuntu 20.04 下安装配置 VScode 的 C/C++ 开发环境(图文教程)

    3. 在`MyProject`文件夹中创建`main.cpp`文件,编写你的C++代码,如`Hello World`程序。 4. 按`F5`或选择`Run` -> `Starting Debugging`。首次调试时,VScode会提示选择调试环境,选择C++(g++)。 5. 如果没有自动...

    Vim的auto-pairs插件

    我ubuntu16中,用vim编写c和c++程序,安装了此插件,极大地方便了代码的输入。 二、功能介绍: 它可以自动完成大括号、小括号、中括号、双引号、单引号的成对匹配。这里以小括号的输入举例:当你在vim中输入(时,它...

    vim 7.2源码(支持vimgdb)

    Vimgdb是Vim的一个重要插件,它整合了GDB的功能,使得开发者无需离开Vim就可以对C、C++等语言编写的程序进行调试。GDB是Linux下广泛使用的开源调试器,能够帮助开发者跟踪代码执行过程,设置断点,查看变量值,单步...

    安装Centos7.9&C++&转源到阿里云.doc

    【编写和运行C++程序】 首先,确保系统中装有文本编辑器,如vi或vim。创建一个名为`test.c`的文件,编写简单的"Hello World!"程序。在插入模式下(按'i'键)输入代码,完成后按Esc键,输入`:wq`或`Shift + z + z`...

    C,C++编译环境搭建

    它们的管理和使用是C/C++项目构建中的重要环节: - **静态链接库**:如`.a`或`.lib`文件,包含库函数的实现,在链接阶段需指定路径,如GCC的`-L`和`-l`选项。 - **动态链接库**:如`.dll`或`.so`文件,程序运行时...

Global site tag (gtag.js) - Google Analytics