zoukankan      html  css  js  c++  java
  • ubuntu10.04 vim 配置

    主要参考一下文章配置。

    ==================

    http://blog.csdn.net/siceaner/archive/2011/01/08/6123923.aspx

    注:以下所有说明针对
    ubuntu10.04 平台。


    1. vimrc 基本配置


    1.1. 配置文件的位置

    在目录
    /etc/ 下面,有个名为vimrc 的文件,这是系统中公共的vim
    配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc” 。例如,/root
    目录下,通常已经存在一个.vimrc 文件。


    1.2. 设置语法高亮显示

    (1 )打开vimrc
    ,添加以下语句来使得语法高亮显示:

    syntax on

    (2 )如果此时语法还是没有高亮显示,那么在/etc 目录下的profile
    文件中添加以下语句:

    export TERM=xterm-color

    (3 )设置Windows 风格的C/C++
    自动缩进(添加以下set 语句到vimrc 中)

        不讨论制表符为8 还是为4 较好,这里设置(软)制表符宽度为4 :

    set
    tabstop=4

    set softtabstop=4

        设置缩进的空格数为4

    set
    shiftwidth=4

        设置自动缩进:即每行的缩进值与上一行相等;使用 noautoindent 取消设置:

    set
    autoindent

        设置使用 C/C++ 语言的自动缩进方式

    set cindent

        设置C/C++
    语言的具体缩进方式(以我的windows 风格为例):

    set
    cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s

       
    如果想在左侧显示文本的行号,可以用以下语句:

    set nu

        最后,如果没有下列语句,就加上吧:

    if
    &term=="xterm"

                     set t_Co=8

                    
    set t_Sb=^[[4%dm

                     set
    t_Sf=^[[3%dm

    endif



    PS


    自动缩进有两个选项:

    代码:

           set autoindent

           set
    cindent



    autoindent 就是自动缩进的意思,当你在输入状态用回车键插入一个新行,或者在 normal 状态用 o
    或者 O 插入一个新行时,autoindent 会自动地将当前行的缩进拷贝到新行,也就是"
    自动对齐”,当然了,如果你在新行没有输入任何字符,那么这个缩进将自动删除。

    cindent 就不同了,它会按照 C
    语言的语法,自动地调整缩进的长度,比如,当你输入了半条语句然后回车时,缩进会自动增加一个 TABSTOP 值,当你键入了一个右花括号时,会自动减少一个
    TABSTOP 值。


    1.3. 括号自动补全

    在/etc/vim/vimrc
    中添加如下代码:

    :inoremap ( ()<ESC>i

    :inoremap )
    <c-r>=ClosePair(')')<CR>

    :inoremap {
    {}<ESC>i

    :inoremap }
    <c-r>=ClosePair('}')<CR>

    :inoremap [
    []<ESC>i

    :inoremap ]
    <c-r>=ClosePair(']')<CR>

    :inoremap '
    ''<ESC>i

    :inoremap " ""<ESC>i

    function
    ClosePair(char)

    if getline('.')[col('.') - 1] == a:char

    return
    "/<Right>"

    else

    return a:char

    endif

    endf
    2.
    ctags 插件安装

    tar –xzvf ctags-5.6.tar.gz

    cd
    ctag-5.6

    ./configure

    make

    make install


    装完成后,在你的源程序文件夹下试试看看是否可以用了,进入本地源程序文件夹输入ctags -R ,即可生成tags 文件,在vim
    中执行命令:

    set tags+=$Program/tags

    可以通过<C-]> 进入函数定义而<C-T>
    返回函数使用了。




    3. taglist插件安装

          unzip –d taglist
    taglist_42.zip

    cd taglist

    将taglist 目录下的taglist.txt
    文件拷贝到/usr/share/vim/vim72/doc 目录下;

    将taglist 目录下的taglist.vim
    文件拷贝到/usr/share/vim/vim72/plugin 目录下。



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

    在if !exists(“loaded_taglist”)
    的前一行,加上一句:

    let
    Tlist_Ctags_Cmd=”/usr/local/bin/ctags”



    至此,打开cpp 文件,输入变量,再按ctrl +
    p 就可以有自动补全的功能了。

    还可以根据需要对taglist 进行定制,

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

    let
    Tlist_Auto_Open=1

    启动vim 自动打开Tlist

    let
    Tlist_File_Fold_Auto_Close=1

    当同时显示多个文件中的tag 时,可使taglist 只显示当前文件tag
    ,其它文件的tag 都被折叠起来。




    4. code_complete插件安装

          
    下载code_complete 插件,将其拷贝到/usr/share/vim/vim72/plugin/
    目录下。




    5. tabbar.vim插件安装

          下载tabbar.vim
    插件,将其拷贝到/usr/share/vim/vim72/plugin/ 目录下。

    sp file.xxx

    注意:
    在打开新文件时,光标一定要处在主编辑界面中,这样才能保证标签的位置的位置合适。



    关闭标签页使用:bd
    file.xxx




    6. a.vim插件安装

    下载tabbar.vim
    插件,将其拷贝到/usr/share/vim/vim72/plugin/ 目录下。

    E.g. if you are editing foo.c
    and need to edit foo.h simply execute :A and you will be editting foo.h, to
    switch back to foo.c execute :A again.




    7. ShowFuncc.vim
    插件安装

         下载ShowFuncc.vim 插件,将其拷贝到/usr/share/vim/vim72/plugin/
    目录下。

    这个插件实现了按下 fd, 就可以提示当前光标所在函数的定义,另外还实现了当输入 '(' 时,会自动匹配 tags
    ,展示函数的定义原型。




    8. omni
    插件安装

    参考~/.vim/doc/omnicppcomplete.txt

        按照 omni
    插件

    下载omnicppcomplete-0[1].41.zip ,执行如下命令:

    unzip –n
    omnicppcomplete-0[1].41.zip –d ~/.vim

    将该文件解压到~/.vim 文件夹下, 有after
    、autoload 、doc 三个文件夹。

        生成 tags 文件

        方法
    1

    在当前原文件所在目录下执行

    ctags –R –c++-kinds=+p –fields=+iaS –extra=+q .
    (注意:最后有个. )

        方法 2

    每次都执行这个长的命令有些麻烦,可以这样设置:

    touch
    ~/.ctags

    打开.ctags 文件vim ~/.ctags ,添加如下三行命令i


    --c++-kinds=+p

    --fields=+iaS

    --extra=+q

    在源文件所在的目录下执行

    貌似直接用ctags
    –R 命令也可以。

    在VIM 中执行

    !ctags –R . 命令即可。(注意:最后有个点)

        设置
    vimrc

    设置/etc/vim/vimrc

    set nocp

    filetype plugin
    on



    set tags+=./tags

    let
    OmniCpp_DefaultNamespaces=[“std”]

    let
    OmniCpp_GlobalScopeSearch=1

    let OmniCpp_NamespaceSearch=1

    let
    OmniCpp_DisplayMode=1

    let OmniCpp_ShowScopeAbbr=0

    let
    OmniCpp_ShowPrototypeInAbbr=1

    let OmniCpp_ShowAccess=1

    let
    OmniCpp_MayCompleteDot=1

    let OmniCpp_MayCompleteArrow=1

    let
    OmniCpp_MayCompleteScope=1

    set omnifunc=complete#Complete

    set
    completeopt=longest,menu




    9. WinManager 插件安装

    ( 1 )
    在当前用户下生效

    下载winmanager.zip ,执行如下命令:

    unzip –n winmanager.zip –d
    ~/.vim



    打开一个.cpp 文件,在VIM 命令模式下输入WMToggle 展开文件夹,输入Tlist 打开taglist
    列表。

    使用ctrl 加两个w
    键,将光标跳转到文件浏览,在光标选中的源文件按回车键,会在编辑窗口打开标签。

    在当前文件夹下,创建新文件时,winmanager
    并不会自动更新,需要利用ctrl+w 将光标转移到文件浏览器窗口(FileExplorer ),按F5 键后,会进行刷新。

    vim
    /etc/vim/vimrc

    let
    g:winManagerWindowLayout=”FileExplorer,Taglist”

    在VIM 只显示文fileexplorer
    和taglist ,即只有文件夹中的文件和taglist ,也可以设置成:

    let g:winManagerWindowLayout=”
    BufExplorer,FileExplorer,Taglist”

    在VIM 中同时会显示缓冲区文件,即在文件浏览器中会显示.swp
    文件。

    let g:winManagerWidth=30

    let
    g:defaultExplorer=0




    10. C 语言相关符号高亮显示

         vim
    /usr/share/vim/vim72/syntax/c.vim

          ( 1 )函数高亮显示

          syn
    match cFunctions display "[a-zA-Z_]/{-1,}/s/{-0,}(/{1}"ms=s,me=e-1

         
    hi def link cFunctions Type

         ( 2 ) 指针符号高亮显示

          syn match
    cPointer display "*"

          hi def link cPointer
    Conditional



         ( 3 ) 指针操作符高亮显示

          syn match
    cPointerOperator display "->/|/."

          hi def link cPointerOperator
    Conditional

          ( 4 )逻辑运算符高亮显示

          syn match cLogicalOperator
    display "[!<>]=/="

          syn match cLogicalOperator display
    "=="

          hi def link cLogicalOperator Conditional

          ( 5 )
    位运算符高亮显示

          syn match cBinaryOperator display
    "/(&/||/|/^/|<</|>>/)=/="

          syn match cBinaryOperator
    display "/~"

          hi def link cBinaryOperator Conditional

          (
    6 ) 逻辑运算赋高亮显示

          syn match cLogicalOperator display "/&& /|
    ||"

          hi def link cLogicalOperatro Conditional


    11.
    Doxygen


    11.1. DoxygenToolkit 设置

         下载DoxygenToolkit.vim
    到/usr/share/vim/vim72/plugin 目录中。

         将doxygenToolkit.vim 中的

        
    “ let s:licenseTag = “ Copyright © /<enter>/<enter>”
    的注释去掉。

         在/etc/vim/vimrc 中添加

         let
    g:doxygenToolkit_authorName="siceaner@gmail.com"

         let
    s:licenseTag="Copyright (C) 2010 CheJiang University
    EE/<enter>"

         let s:licenseTag=s:licenseTag."All rights
    reserved"

         let g:DoxygenToolkit_licenseTag=s:licenseTag

        
    let g:doxygenToolkit_briefTag_funcName="yes"

         let
    g:DoxygenToolkit_enhanced_color=1

         这样,就可以这样,你就可以通过DoxAuthor ,DoxLic
    ,Dox ,Doxb 等几个命令来生成文件、函数等常用的注释,完成doxygen 风格的文档了。
    11.2. Doxygen 设置

        
    安装Doxygen 生成注释文档。

        ( 1 )安装 doxygen

         sudo apt-get install
    doxygen doxygen-doc doxygen-gui graphviz

        ( 2 ) 生成配置文件

        
    在程序所在目录下执行doxygen -g 生成doxygen 配置文件

        ( 3 ) 生成注释文档

        
    在配置文件所在目录下,执行doxygen 配置文件名,生成注释文档。






    12.
    快捷键设置

         vim /etc/vim/vimrc

         nmap <F8>
    :Tlist

         nmap <F9> :WMToggle



         nmap doxq
    :DoxAuthor

         nmap doxw :DoxLic

         nmap doxe :Dox

        
    nmap doxr :DoxBlock

     

  • 相关阅读:
    80端口被NT kernel & System 占用pid 4的解决方法 80端口被占用
    Linux:linux输入输出重定向、管道命令grep/wc、linux进程管理ps、pstree、kill命令、linux防火墙命令firewall-cmd、防火墙开启关闭端口号
    Linux:Linu文件权限管理、文件权限修改chmod、修改属主属组chown、特殊权限SUID、SGID、Sticky、umask
    [Java]获取图片高和宽
    [Java]获取Window界面的标题栏的高度大小
    [算法 笔记]字符串表达式计算(简易版)
    [算法 笔记]大数相乘(续)
    [算法 笔记]2014年去哪儿网 开发笔试(续)第一题BUG修正
    [算法 笔记]堆排序(续)
    [算法 笔记]用小范围随机函数编写大范围随机函数
  • 原文地址:https://www.cnblogs.com/wangxianzhen/p/3011186.html
Copyright © 2011-2022 走看看