zoukankan      html  css  js  c++  java
  • Vim使用

    1. 介绍

    这里不介绍vim的命令的使用,主要是介绍一些插件

    Vim的配置文件位置如下

     - Linux:    ~/.vimrc
    - Windows:  C:Program FilesVim\_vimrc

    Vim中的插件文件位置如下

     - Linux:   ~/.vim/{plugin,doc}
    - Windows: {INSTALL_DIR}/{plugin,doc}

    1. ctags

    ctags主要是用来生成代码函数或变量的定义索引;正确配置后Vim启动时会自动载入当前目录下tags文件

    ctags命令和快捷键

    $ ctags –R *      生成tags文件
    :set tags=*tags   设置tags文件
    :tag func          跳转到指定函数标签func
    :tags              显示标签栈
    :ts(tagslist)
    :tp(tagspreview) 
    :tn(tagsnext) 
    Ctrl+]             跳到光标所在函数或者结构体的定义处
    Ctrl+T             返回查找或跳转ctags配置

    在配置文件中加入如下内容

    """"""""""""""""""""""""""""""
    " Ctags
    """"""""""""""""""""""""""""""
    set tags=tags;
    set autochdir   " 让vim首先在当前目录里寻找tags文件,如果没有找到tags文件,就到父目录中查找,一直向上递归
    nmap <F5> <Esc>:!ctags -R *<CR>  " 映射快捷键 F9 –> 在当前目录下生成tags文件

    ctags中文手册

    2. cscope

    cscope可以生成函数或变量的定义及被调用信息,并通过命令查找它们;Windows版本的cscope: cscope-win32 

    cscope命令

    $ cscope -Rbq                    生成cscope数据库(cscope.in.out  cscope.out  cscope.po.out)
    :cs add cscope.out               添加cscope数据库
    :cs find c|d|e|f|g|i|s|t symbol  查找sysbol

    cs find快捷键

    0/s     查找本符号(可以跳过注释)
    1/g     查找本定义
    2/d     查找本函数调用的函数
    3/c     查找调用本函数的函数
    4/t     查找本字符串
    6/e     查找本egrep模式
    7/f     查找本文件
    8/i     查找包含本文件的文件

    cscope在Vim中的参考配置: cscope_maps.vim

    注意的是, cscope在产生索引文件时,只搜索后缀名为.c、.h的文件;我们可以用下面的命令来生成后缀为.DEF的索引

    $ find . -name "*.h" -o -name "*.c" -o -name "*.DEF" > cscope.files
    $ cscope -bq -i cscope.files

    Cscope的使用(领略Vim+Cscope的强大魅力)

    3. taglist

    taglist需配合ctags一起使用,以分割窗口形式显示当前的代码结构概览

    taglist命令

    :Tlist                  打开/关闭标签列表窗口
    :TlistOpen              打开并将输入焦点至于标签列表窗口
    :TlistClose             关闭标签列表窗口
    :TlistToggle            切换标签列表窗口状态(打开←→关闭)
    :ctl-w+w / ctl-w+[←,→]  窗口切换

    taglist快捷键

    <CR>          跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样
    o             在一个新打开的窗口中显示光标下tag
    <Space>       显示光标下tag的原型定义
    u             更新taglist窗口中的tag
    s             更改排序方式,在按名字排序和按出现顺序排序间切换
    x             taglist窗口放大和缩小,方便查看较长的tag
    +             打开一个折叠,同zo
    -             将tag折叠起来,同zc
    *             打开所有的折叠,同zR
    =             将所有tag折叠起来,同zM
    [[            跳到前一个文件
    ]]            跳到后一个文件
    q             关闭taglist窗口
    <F1>          显示帮助

    taglist配置

    """"""""""""""""""""""""""""""
    " Taglist
    """"""""""""""""""""""""""""""
    if MySys() == "windows"
        let Tlist_Ctags_Cmd = 'ctags'
    elseif MySys() == "linux"
        let Tlist_Ctags_Cmd = '/usr/bin/ctags'
    endif
    let Tlist_Show_One_File = 1        " 只显示当前文件的tag
    let Tlist_Exit_OnlyWindow = 1      " 如果taglist窗口是最后一个窗口,则退出vim
    let Tlist_Use_Right_Window = 1     " 在右侧窗口中显示taglist窗口 *不建议*
    let Tlist_Auto_Open=1              " 启动vim自动打开taglist     *不建议*
    nnoremap <silent> <F3> :TlistToggle<CR>

    Vi/Vim使用进阶: 使用taglist插件

    4. NERDTree

    NERDTree可以在Vim运行时显示目录和文件结构

    NERDTree命令

    :NERDTree [<start-directory>]        从指定目录或当前目录作为根节点打开NERDTree
    :NERDTreeToggle [<start-directory>]  在打开和关闭NERDTree间切换
    :NERDTreeMirror                      从另一个Tab中共享一个NerdTree
    :NERDTreeClose                       关闭NERDTree间切换         
    :NERDTreeFind                        在目录树种查找当前文件

    NERDTree快捷键

    o     打开关闭文件或者目录
    t     在标签页中打开
    T     在后台标签页中打开
    !     执行此文件
    p     到上层目录
    P     到根目录
    K     到同目录第一个节点
    J     到同目录最后一个节点
    u     打开上层目录
    m     显示文件系统菜单(添加、删除、移动操作)
    ?     帮助
    q     关闭

    NERDTree配置

    """"""""""""""""""""""""""""""
    " NERDTree
    """"""""""""""""""""""""""""""
    let NERDTreeWinPos = "right" " *不推荐*
    let NERDTreeWinSize = 31     " *不推荐*
    nmap <F4> <ESC>:NERDTreeToggle<CR>"

    5. MiniBufExplorer

    MiniBufExplorer用来快速浏览和操作Buffer,对于多源文件编辑非常有用

    MiniBufExplorer命令([MBE]表示MBE可省略)

    :MBEToggle     打开/关闭MiniBufExplorer
    :[MBE]bn       跳转至下一个buf
    :[MBE]bp       跳转至前一个buf
    :[MBE]b<n>     跳转至第N个buf
    :[MBE]b<tab>   自动补齐
    :[MBE]bd [N*]  删除第*个buf

    MiniBufExplorer配置

    """"""""""""""""""""""""""""""
    " MiniBufExplorer
    """"""""""""""""""""""""""""""
    let g:miniBufExplMapWindowNavVim = 1
    let g:miniBufExplMapWindowNavArrows = 1
    let g:miniBufExplMapCTabSwitchBufs = 1
    let g:miniBufExplModSelTarget = 1
    let g:miniBufExplMoreThanOne=0
    nmap <F6> <ESC>:MBEToggle<CR>"

    6. WinManager

    WinManager是一个界面管理插件

    WinManager命令

    :WMToggle        打开/关闭WinManager

    WinManager配置

    """""""""""""""""""""""""""""""
    "" winManager setting
    """""""""""""""""""""""""""""""
    let g:NERDTree_title="[NERDTree]"
    let g:winManagerWindowLayout="NERDTree|TagList"
    let g:winManagerWidth = 30          " 设置winmanager的宽度,默认为25
    let g:AutoOpenWinManager = 1        " 在进入vim时自动打开winmanager 
    nmap <silent> <F9> :WMToggle<cr>

    7. 其他插件

    7.1 A

    A: .c和.h文件间快速切换

    命令

    :A     在新Buffer中切换到c/h文件
    :AS    横向分割窗口并打开c/h文件
    :AV    纵向分割窗口并打开c/h文件
    :AT    新建一个标签页并打开c/h文件

    配置

    nmap <silent> <F7> :A<CR>

    7.2 grep

    grep: 查找 (该插件需要grep命令行支持)

    命令

    :Grep [<grep_options>] [<search_pattern> [<file_name(s)>]]   /* 注意G大写 */

    配置

    nnoremap <silent> <F8> :Grep<CR>

    7.3 bufexplorer

    bufexplorer: 可以打开历史文件列表以达到快速切换文件的目的(与MiniBufExplorer相似)

    命令

    e or :BufExplorer                   打开历史文件列表
    s or :BufExplorerHorizontalSplit    水平新建历史文件列表窗口
    v or :BufExplorerVerticalSplit      垂直新建历史文件列表

    7.4 project

    Project:  对代码项目进行简单的集中管理

    好像没什么用,就是一个文件管理器

    参考 <VIM之Project项目管理工具>

    7.5 OmniCppComplete

    OmniCppComplete: C/C++语言时自动补全,依赖于ctags,个人觉得比较鸡肋

    需要ctags打开三个选项

    --c++-kinds=+p --fields=+iaS --extra=+q

    配置

    set nocp
    filetype plugin on
    set completeopt=menu
    set cindent

    7.6 C

    c.vim: 我们可以称之为C程序员插件

    参考<VIM: C程序员插件C.vim>

    7.7 语法高亮

    用Vim打开C源代码可以发现仅仅对关键字进行了高亮,而函数和变量等未高亮

    下面是网上流传高亮函数的办法(加入到syntax/c.vim中)

    " highlight Functions
    syn match cFuntions display "[a-zA-Z_]{-1,}s{-0,}({1}"ms=s,me=e-1
    hi def link cFuntions Title

    std_c是一个标准C语法脚本,只是配色不怎么好看,以待后续

    8. 配置文件

    Vim: 我的配置及插件记录

    参考:
    <Vim Awesome>
    <Vim中文帮助文档>
    <网友Vim配置文件>
    <所需即所获:像IDE一样使用vim>
    <如何将Vim打造成一个成熟的IDE>
    <Vi/Vim使用进阶: 剑不离手 – quickfix>

  • 相关阅读:
    【转载】SAP_ECC6.0_EHP4或SAP_ECC6.0_EHP5_基于Windows_Server_2008R2_和SQL_server_2008下的安装
    使用delphi 开发多层应用(二十四)KbmMW 的消息方式和创建WIB节点
    使用delphi 开发多层应用(二十三)KbmMW 的WIB
    实现KbmMw web server 支持https
    KbmMW 服务器架构简介
    Devexpress VCL Build v2014 vol 14.1.1 beta发布
    使用delphi 开发多层应用(二十二)使用kbmMW 的认证管理器
    KbmMW 4.50.00 测试版发布
    Basic4android v3.80 beta 发布
    KbmMW 认证管理器说明(转载)
  • 原文地址:https://www.cnblogs.com/hzl6255/p/3317338.html
Copyright © 2011-2022 走看看