zoukankan      html  css  js  c++  java
  • VIM工程编辑设置

    Linux系统版本:ubuntu 10.10

    • vim安装和中文帮助文档

           vim 安装直接选择apt-get install vim(所有的都装上吧,包括vim-gtk,vim-gnome),或者去vim官方下载源码安装。

           中文帮助文档下载:http://sourceforge.net/projects/vimcdoc/files/vimcdoc/

           先将其解压缩:

               tar zxvf vimcdoc-<version>.tar.gz

        然后进入 vimcdoc-<version> 目录并执行

               ./vimcdoc.sh -i

        就可以了。该安装程序会自动识别 Vim 的安装路径,将中文的文档拷贝到相应的地方。原有的英文文档不受影响。

         这种方法对 root 和非 root 用户都适用。但建议以 root 身份安装。具体见vimcdoc目录下INSTALL文件。

        以后用vim时直接:help就可以查看中文帮助文档。

    • 语法高亮,自动缩进

           可以参考中文帮助文档中所述,这里只介绍一些简单的。

           设置语法高亮度

           syntax enable

            syntax on

           设置缩进的空格数为4

            set shiftwidth=4

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

            set autoindent

            设置使用 C/C++ 语言的自动缩进方式(如果遇到分支或者函数段会自动缩进一格):

            set cindent

    • 智能自动补全

        vim在对不同类型的文件进行补全时,会根据文件类型,为其设置不同的补全函数。也就是说,要实现全能补全功能,

         需要把下面的命令加到你的vimrc中:

          filetype plugin indent on

        表示打开文件类型检测

        set completeopt=longest,menu     

        上面的设置表明,只在下拉菜单中显示匹配项目,并且会自动插入所有匹配项目的相同文本。

        Ctrl+P    向前切换成员

        Ctrl+N    向后切换成员

        Ctrl+E    表示退出下拉窗口, 并退回到原来录入的文字

        Ctrl+Y    表示退出下拉窗口, 并接受当前选项

        整行补全                        CTRL-X CTRL-L

        根据当前文件里关键字补全        CTRL-X CTRL-N

        根据字典补全                    CTRL-X CTRL-K

        根据同义词字典补全              CTRL-X CTRL-T

        根据头文件内关键字补全          CTRL-X CTRL-I

        根据标签补全                    CTRL-X CTRL-]

        补全文件名                      CTRL-X CTRL-F

        补全宏定义                      CTRL-X CTRL-D

        补全vim命令                     CTRL-X CTRL-V

        用户自定义补全方式              CTRL-X CTRL-U

        拼写建议                        CTRL-X CTRL-S 

    • ctags

        功能就是查找你代码中某个函数的声明和定义位置的跳转。

        ctags源码官方地址:http://ctags.sourceforge.net 用下面的命令解压安装:

        $ tar -xzvf ctags-xx.tar.gz

        $ cd ctags-xx

        $ make

        # make install   // 最好root权限,这样应该所有用户可以使用了

        然后去你的源码目录, 如果你的源码是多层的目录, 就去最上层的目录, 在该目录下运行命令: ctags -R

        此时在该目录下会生成一个 tags 文件, 再用vim打开某个代码时需要加上如下命令:

        :set tags=/源码的目录/tags

        表示加载该tags。 

    • taglist

          功能是列出所有的函数,宏定义,变量等。

          官方下载地址:http://www.vim.org/scripts/script.php?script_id=273 下载后,把该文件在~/.vim/目录中解压缩。

          这会在你的~/.vim/plugin和~/.vim/doc目录中各放入一个文件:

                   plugin/taglist.vim – taglist插件

                   doc/taglist.txt    - taglist帮助文件

          在.vimrc文件中需要添加代码:

            map <F3> :Tlist<CR> // 快捷键设置

            let Tlist_Use_Right_Window=1 

            let Tlist_File_Fold_Auto_Close=1   

         这样只要在vim中按住F3就可以查看Tlist窗口了。 

    • winmanager

          功能主要是打开源代码所在目录所有的文件列表,这样方便在vim中切换工程代码文件。

          官方源码地址:http://www.vim.org/scripts/script.php?script_id=95

          同taglist一样,把解压后的*.vim,*.txt放入plugin/,doc/目录下。

          然后在你的~/.vimrc中加上下面两句代码:

          let g:winManagerWindowLayout='FileExplorer|TagList' // Taglist同时打开。

          nmap wm :WMToggle<cr>  

         这样只要按快捷键wm就可以实现文件查看和tags查看。

    • cscope

        功能主要是实现了比ctags更强势的函数,变量查询,包括查询谁调用次函数,次函数调用了哪些函数,某个字符串在哪些地方出现过等等。

        官方地址:http://cscope.sourceforge.net下载一个源码包, 解压后编译安装:

           # ./configure

           # make 

           # make install       // 需要root权限

         使用时,想ctags那样需要在该目录执行 cscope -Rbq 命令,具体含义可以cscope --help查看。

         然后会生成三个文件:cscope.in.out等。

         进入vim后需要把刚才生成的cscope文件导入到vim中来, 用下面的命令:

           :cs add /代码目录/cscope.out /代码目录

          在.vimrc文件中需要添加代码:

         "设置cscope

         :set cscopequickfix=s-,c-,d-,i-,t-,e-

         "快捷键

         nmap <C-@>s :cs find s <C-R>=expand("<cword>")<CR><CR>:copen<CR>

         nmap <C-@>g :cs find g <C-R>=expand("<cword>")<CR><CR>

         nmap <C-@>c :cs find c <C-R>=expand("<cword>")<CR><CR>:copen<CR>

         nmap <C-@>t :cs find t <C-R>=expand("<cword>")<CR><CR>:copen<CR>

         nmap <C-@>e :cs find e <C-R>=expand("<cword>")<CR><CR>:copen<CR>

         nmap <C-@>f :cs find f <C-R>=expand("<cfile>")<CR><CR>:copen<CR>

         nmap <C-@>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>:copen<CR>

         nmap <C-@>d :cs find d <C-R>=expand("<cword>")<CR><CR>:copen<CR>

        cscope的主要功能是通过同的子命令"find"来实现的

        "cscope find"的用法:

        cs find c|d|e|f|g|i|s|t name

        s    查找本 C 符号(可以跳过注释)

        g    查找本定义

        d    查找本函数调用的函数

        c    查找调用本函数的函数

        t    查找本字符串

        e    查找本 egrep 模式

        f    查找本文件

        i    查找包含本文件的文件

    • 代码折叠

         set foldmethod=marker( 也可以用indent );

        当使用marker方式时,需要用标计来标识代码的折叠,系统默认是{{{和}}},最好不要改动之:)

        我们可以使用下面的命令来创建和删除折叠:

        zf      创建折叠,比如在marker方式下:

            zf56G,创建从当前行起到56行的代码折叠;

            10zf或10zf+或zf10↓,创建从当前行起到后10行的代码折叠

            10zf-或zf10↑,创建从当前行起到之前10行的代码折叠。     

            在括号处zf%,创建从当前行起到对应的匹配的括号上去((),{},[],<>等)。

        zd      删除 (delete) 在光标下的折叠。仅当 ‘foldmethod’ 设为 “manual” 或 “marker” 时有效。

        zD     循环删除 (Delete) 光标下的折叠,即嵌套删除折叠。

                  仅当 ‘foldmethod’ 设为 “manual” 或 “marker” 时有效。

        zE     除去 (Eliminate) 窗口里“所有”的折叠。

                  仅当 ‘foldmethod’ 设为 “manual” 或 “marker” 时有效。

    • 快捷键设置

          这个快捷键是用于写小程序(acm竞赛等)使用方便的。

         "acm编程设置

          func Make(cmd)

                  let _makeprg = &makeprg

                 let &makeprg = a:cmd

                make

                 let &makeprg = _makeprg

         endf

         map <F2> :!date <CR>

         map <F5> :w<CR>:call Make("g++ % -o%:r -O2 -Wall")<CR>

         map <C-F5> :w<CR>:make<CR>

         map <F6> :!./%:r<CR>

         map <F7> :w<CR>:call Make("g++ % -o%:r -g -Wall")<CR>

         map <F8> :!gdb ./%:r<CR>

         map <F9> :!time ./%:r <CR>"

     

  • 相关阅读:
    正整数分解质因数
    水仙花数
    键入任意整数,将之从小到大输出
    有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少
    输入某年某月某日,判断这一天是这一年的第几天?
    java 日期增加
    oracle数据库 ORA-01461: can bind a LONG value only for insert into a LONG column解决方案
    JAVA实现图片叠加效果
    JAVA_GET请求URL
    sqlserver-触发器-判断更新了哪个字段。
  • 原文地址:https://www.cnblogs.com/doctorqbw/p/2585869.html
Copyright © 2011-2022 走看看