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>

  • 相关阅读:
    DTree中致命的递归
    通过CLR同步SQL Server和Sharepoint List数据(三)
    通过CLR同步SQL Server和Sharepoint List数据(四)
    C#中操作IIS 7.0
    可爱又可恨的梅花雪
    通过CLR同步SQL Server和Sharepoint List数据(一)
    在Javascript中调用WSS
    VBA在Excel中的应用(二)
    自己编写存储过程对Oracle中的序列进行重置
    在Javascript中实现伪哈希表
  • 原文地址:https://www.cnblogs.com/hzl6255/p/3317338.html
Copyright © 2011-2022 走看看