zoukankan      html  css  js  c++  java
  • linux server 配置vim编程位置

    原创  如何在linux下面配置Vim+c.vim+Ctags+taglist 收藏

    最近由于公司编程的需要,我发现键盘流的很多好处,因为由于没有过于繁琐的GUI 的限制,速度也就可以提升,更何况在linux下工作,把自己打造成一个键盘流还是有很多好处的。

    1、 准备工作,首先可以查看一下在linux机器上的vim的版本,建议大家用新的Vim 7.2版本,据说这个版本还是比较稳定的。

    如果没有安装vim7.2可以到vim 的官方网站上下载一个版本。http://www.vim.org/ 这个网站很实用,所以的和Vim相关的plugin都可以通

    过这个网站搜索到。这篇文章没有专门介绍如何在linux上安装vim的知识,以后补上。

    1.1) 下载安装c.vim

    下载c.vim http://www.vim.org/scripts/download_script.php?src_id=9679

    mkdir ~/.vim 所有的文件都要安装在这个目录下

    cd ~/.vim

    unzip /usr/src/cvim.zip

    解压到~/.vim的目录下,如果想解压到一个专门的目录下可以加上 -d 的参数。

    启用这一插件:

    vim ~/.vimrc

    创建一个.vimrc的文件作为你的整体vim环境的配置。

    filetype plugin on

    我们后面还要用到这个文件,这里只是写一句这样的脚本,让cvim可以按照C的习惯工作。

    下面费点时间讲一下c.vim 的使用,本来我以为linux下面的编程工具和windows 的visual studio的功能,特别再加上一个assistant 就更不能比了,但是用过之后发现还是vim更加好用,键指如飞的感觉。

    下面的内容摘录自网上的一些文章,这里我都已经试过了,相当好用。

    Feature 1: Add Automatic Header to *.c file

    当你新建一个扩展名.c的文件时候,自动在文件头部增加头部注释

    $ vim myprogram.c
    /*
    * =================================================
    * Filename: myprogram.c
    *
    * Description:
    *
    * Version: 1.0
    * Created: 01/19/09 20:23:25
    * Revision: none
    * Compiler: gcc
    *
    * Author: Dr. Fritz Mehner (mn),
    mehner@fh-swf.de
    * Company: FH Südwestfalen, Iserlohn
    *
    * =================================================
    */


    其中如果你要改变 AUTHOR 和 COMPANY的值, 要修改模板文件 ~/.vim/c-support/templates/Templates

    $ vim ~/.vim/c-support/templates/Templates
    |AUTHOR| = geekstuff
    |AUTHORREF| = gk
    |EMAIL| = subscribe@geekstuff
    |COMPANY| = thegeekstuff.com


    现在编辑一个新文件,看看你的作者和公司名称改变了没有。

    $ vim myprogram.c
    /*
    * =================================================
    *
    * Filename: myprogram.c
    *
    * Description:
    *
    * Version: 1.0
    * Created: 01/19/09 20:26:43
    * Revision: none
    * Compiler: gcc
    *
    * Author: geekstuff (gk), subscribe@geekstuff
    * Company: thegeekstuff.com
    *
    * =================================================
    */

    Feature 2: 用\if 添加c函数

    键入\if 加函数名称就会在文件中自动完成函数的定义

    Feature 3: 用\im 添加main函数

    Feature 4: 用 \cfu 添加函数注释

    Feature 5: 用\cfr添加注释框架

    Feature 6: 用\p<包含头文件

    Type \p< in the normal mode, which will include the text “#include <>”, and places the cursor in the < symbol in Insert mode where you can type the header file name.

    Feature 7: 保存编译文件.

    保存并编译文件 \rc.

    运行 \rr.

    Feature 8: 用\nr 插入预定义的代码片段

    The plugin comes with few pre-defined code snippets that you can insert into your code. Following are the default code snippets that comes with the plugin.

    $ ls ~/.vim/c-support/codesnippets
    Makefile calloc_double_matrix.c main.c print_double_array.c.noindent
    Makefile.multi-target.template calloc_int_matrix.c main.cc print_int_array.c.noindent

    For example, if you want to create a function that will Allocate a dynamic int-matrix of size rows*columns; return a pointer, you can re-use it from the existing code snippets. Following is the content of the calloc_int_matrix.c pre-defined code snippets.

    /*
    * === FUNCTION ======================================================================
    * Name: calloc_int_matrix
    * Description: Allocate a dynamic int-matrix of size rows*columns; return a pointer.
    * =====================================================================================
    */
    int**
    calloc_int_matrix ( int rows, int columns )
    {
    int i;
    int **m;
    m = calloc ( rows, sizeof(int*) ); /* allocate pointer array */
    assert( m != NULL ); /* abort if allocation failed */
    *m = calloc ( rows*columns, sizeof(int) ); /* allocate data array */
    assert(*m != NULL ); /* abort if allocation failed */
    for ( i=1; i
    m[i] = m[i-1] + columns;
    return m;
    } /* ———- end of function calloc_int_matrix ———- */


    如果要插入这段代码,可以键入\nr 文件名称,代码就会自动插入

    1.2) 下载Ctags         

    到http://ctags.sourceforge.net/下载ctags源码

    ctags-5.6.tar.gz http://prdownloads.sourceforge.net/ctags/ctags-5.6.tar.gz       

    然后解压并且安装 

    tar zxvf ctags-5.6.tar.gz

    cd ctags-5.6

    ./configure && make && make install

    1.3) 下载安装taglist

    taglist 依赖于ctags 插件,所以要安装ctags 插件,然后才能安装taglist,否则不能用。

    到http://vim.sourceforge.net/scripts/script.php?script_id=273
    下载taglist_42.zip

    这里可能有更新的版本,所以要根据文档的说明,配合vim的版本才可以安装。

    解压文件:unzip -d taglist taglist_42.zip -d 表示要把文件解压到某个目录下。

    解压得到两个文件。./taglist/doc/taglist.txt; ./taglist/plugin/taglist.vim

    分别复制到各自的目录下:

    cp ./taglist/doc/taglist.txt /usr/share/vim/vim72/doc/

    cp ./taglist/plugin/taglist.vim /usr/share/vim/vim72/plugin/

    但是我认为这两步复制操作不是必要的。

    不过下面两步操作是必要的。

    cp ./taglist/doc/taglist.txt ~/.vim/doc/

    cp ./taglist/plugin/taglist.vim ~/.vim/plugin/

    这两步的目的是让taglist和ctag联系起来。

    至此cview 和 ctag 加上 taglist的工具基本环境已经搭好了,下面可以用这些工具生成代码的tag然后方便浏览,有了这些工具,假以时日,练习熟练,加上vim和linux shell的强大功能就可以方便的工作了。

    2、使用Ctags 和 Taglist

    :helptags ~/.vim/doc 生成帮助标签

    :help taglist.txt 查看帮助文档

    配置 ~/.vimrc文件。

    filetype plugin on 
    let Tlist_Ctags_Cmd = '/usr/local/bin/ctags' “设置ctags命令目录
    let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的 
    let Tlist_Exit_OnlyWindow =  1 "如果taglist窗口是最后一个窗口,则退出vim 
    let Tlist_Use_Right_Window = 1 “让taglist窗口在右侧显示

    命令与用法:

    在Taglist窗口按
    F1:打开帮助
    回车键:跳到光标所在的标记的定义处(如将光标移到main函数,按回车键)
    o:新建一个窗口,跳到标记定义处
    p:预览标记定义(仍然在taglist窗口)
    空格:显示标记的原型(如函数原型)
    u:更新标记列表(比如源文件新增了一个函数,并在保存后,可在taglist窗口按u)
    s:选择排序字段
    d:删除光标所在的taglist文件(如用vi打开了两个文件f1.c,f2.c可以删除f1.c的标记)
    x:放大/缩小taglist窗口
    +:展开(指标记)
    -:折叠
    *:全部展开
    =:全部折叠
    [[:将光标移到前一个文件的起点
    ]]:将光标移到后一个文件的起点
    q:退出taglist窗口
    F1:关闭帮助

    最方便的方法是把光标移到变量名或函数名上,然后按下"Ctrl-]"。用"Ctrl-o"退回原来的地方。
    注意:运行vim的时候,必须在"tags"文件所在的目录下运行。否则,运行vim的时候还要用":set tags="命令设定"tags"文件的路径,这样vim才能找到"tags"文件。

    3、附带的问题

    在实际的工作中我需要linux和windows通讯,这样我自然就想到了用ftp服务器,可能是在学校下片子下多了,首先想到假设windows端ftp服务器的工具,就是Serv-U,然后配置好账号,这里的账号最好用匿名方式,且不要设密码,因为我们要递归一次下载很多文件,包括子目录的文件结构。

    然后在liunx 机器上用wget ftp://192.168.1.100/dir_name/ 下载windows上的目录。最后一个斜杠是必要的,因为这可以让你的系统认为你是在递归下载一个目录。
  • 相关阅读:
    Struts2异常:HTTP Status 404
    Struts2的Action编写
    Struts2异常:HTTP Status 404
    Struts2的核心配置文件
    Struts2入门1
    Hibernate的批量抓取
    Hibernate检索策略
    Hibernate的HQL多表查询
    Hibernate入门4
    Hibernate异常:MappingException
  • 原文地址:https://www.cnblogs.com/hanyulcf/p/1863038.html
Copyright © 2011-2022 走看看