zoukankan      html  css  js  c++  java
  • gvim 配置

     

    搭建以gvim为基础的IDE

    分类: Linux 1302人阅读 评论(0) 收藏 举报

    按本文所述方法添加配置vim插件后,可在gvim中实现如下功能:

    追踪对象定义 CTRL+]
    跳回 CTRL+T
    追踪对象调用 CTRL+U
    在文件/工程中grep F3
    查看quickfix结果 F6/F7
    buffer间切换 CTRL+TAB
    .c/.h对应文件打开 F12
    添加书签 CTRL+F2
    跳转至下一书签 F2
    代码补全 TAB
    原型提示 左圆括号(
    代码折叠/展开 ZA

    安装中文帮助手册
    1.在此处下载中文帮助的文件包

    2.解压并执行文件夹中的脚本

    1. ./vimdoc.sh -i  

    ctags

    1.使用命令

    1. sudo apt-get install ctags  #安装ctags  

    2.在工程目录下,使用命令

    1. ctags -R  
    生成tags文件,该文件建立了工程中所有对象的索引关系

    3.在gvim下使用命令

    1. :set tags=[tags文件路径]  

    4.以后即可采用

    • CTRL+]:跳转到定义
    • CTRL+T:跳回

    Tips:修改程序后, 比如增加了函数定义, 删除了变量定义, tags文件不能自动rebuild, 必须手动再运行一下命令

    1. ctags -R  

    taglist
    1.在此处下载taglist包
    2.解压后,将taglist.vim和taglist.txt分别放在~/.vim/plugin和~/.vim/doc下
    3.在~/.vimrc中添加如下两行
    1. let Tlist_Show_One_File=1  
    2. let Tlist_Exit_OnlyWindow=1  

    4.在gvim下使用命令

    1. :Tlist  
    5.随后使用中,用鼠标选中左侧对象名,按space键在gvim最下方显示定义,按enter键跳转到定义  
    winmanager
    1.在此处下载winmanager包
    2.解压,将.vim和.txt分别放在~/.vim/plugin和~/.vim/doc下
    3.在~/.vimrc中添加如下两行
    1. let g:winManagerWindowLayout='FileExplorer|TagList'  
    2. nmap wm :WMToggle<cr>  
    Tips:第二行wm后面有一个空格,不要遗漏
    4.之后使用中,在normal模式(即刚进入gvim时的模式)输入wm,可同时开启taglist和winmanager


    cscope

    1.使用命令

    1. sudo apt-get install cscope  #安装cscope  

    2.使用命令

    1. cscope -Rbq  #建立cscope映射文件  

    3.进入gvim,使用命令

    1. :cs add [工程目录]/cscope.out [工程目录]  
    4.之后使用中,使用命令
    1. :cs find c|d|e|f|g|i|s|t name  
    • g:查找本定义
    • c:查找调用本函数的函数
    • d:查找本函数调用的函数

    5.使用命令

    1. :cw  
    可打开quickfix窗口

    6.在~/.vimrc文件中加如下三行

    1. nmap <C-U> :cs find s <C-R>=expand("<cword>")<CR><CR>  
    2. nmap <F6> :cn<cr>  
    3. nmap <F7> :cp<cr>  
    将追踪对象调用快捷键映射为CTRL+U

    将查看quickfix结果快捷键映射为F6/F7


    MiniBufExplorer
    1.在此处下载插件,拷至~/.vim/plugin/下
    2.在~/.vimrc中添加如下
    1. let g:miniBufExplMapCTabSwitchBufs = 1  
    3.在此后使用中,当打开多个文件时会自动弹出MiniBufExplorer窗口,使用CTRL+TAB在各个buffer间切换      


    A
    1.在此处下载插件,拷至~/.vim/plugin/下
    2.在~/.vimrc中添加一行
    1. nnoremap <silent> <F12> :A<CR>  
    3.使用中,使用F12快速在新buffer打开对应.c/.h文件

    grep
    1.在此处下载插件,拷至~/.vim/plugin/下
    2.在~/.vimrc中添加一行
    1. nnoremap <silent> <F3> :Grep<CR>  
    3.使用时使用F3在工程中查找光标处的对象名


    visualmark
    1.在此处下载插件,拷至~/.vim/plugin/下
    2.编辑~/.vim/plugin/visualmark.vim,找到包含"en_US"的一行,注释起来,并添加如下一行
    1. exec ":lan POSIX"  
    3.修改高亮颜色,编辑~/.vim/plguin/visualmark.vim,找到如下几行修改颜色
    1. if &bg == "dark"  // 根据你的背景色风格来设置不同的书签颜色  
    2.         highlight SignColor ctermfg=white ctermbg=blue guifg=wheat guibg=peru  
    3. else             // 主要就是修改guibg的值来设置书签的颜色  
    4.         highlight SignColor ctermbg=white ctermfg=blue guibg=grey guifg=RoyalBlue3  
    5. endif  
    4.使用时使用CTRL+F2在光标处添加书签,使用F2在书签间切换


    自动补全
    1.在~/.vimrc中添加如下两行
    1. filetype plugin indent on  
    2. set completeopt=longest,menu  
    2.使用时,按下CTRL+X再按CTRL+O即可自动补全


    supertab
    1.在此处下载插件
    2.在~/.vimrc中添加如下几行
    1. let g:SuperTabRetainCompletionType=2  
    2. let g:SuperTabDefaultCompletionType="<C-X><C-O>"  
    3.使用时直接用TAB键自动补全即可


    代码折叠
    1.在~/.vimrc中添加两行
    1. set foldmethod=syntax  
    2. set foldlevel=100  " 启动vim时不要自动折叠代码  
    2.使用时,输入ZA可以在当前位置打开/关闭折叠


    echofunc
    1.在此处下载插件

    2.需要tag文件的支持,在创建tag文件时,需要加参数--fields=+lS,即整个命令如下

    1. ctags -R --fields=+lS  
    3.使用时,在函数名后添加圆括号(时会在quickfix栏提示函数原型,另外,鼠标指向函数名时也会提示原型

    配置完成后

    1.进入工程目录

    2.使用命令

    1. ctags -R --fields=+lS #生成ctags文件用于追踪对象定义  
    2. :set tags=[tags文件路径]  #关联ctags文件  
    3. cscope -Rbq  #生成cscope文件用于追踪对象引用  
    3.进入gvim(每次打开gvim时都要使用)
    在normal模式下输入wm打开taglist和winmanager

    使用命令

    1. :cs add [工程目录]/cscope.out [工程目录]  #关联cscope文件  
    2. :cw  #打开quickfix窗口  
  • 相关阅读:
    C#中IEnumerable、ICollection、IList、List之间的区别
    H5中画图标签Canvas---画矩形,画线,画圆,渐变色,图形载入
    centos启用ftp功能
    CentOS 7 安装FTP服务器(vsftpd)
    Linux下如何修改用户默认目录
    Centos搭建FTP服务器
    MyBatis 示例之存储过程
    MyBatis:MyBatis操作MySQL存储过程
    mybatis的select、insert、update、delete语句
    日常运维中的相关日志切割处理方法总结 [Logrotate、python、shell脚本实现 ]
  • 原文地址:https://www.cnblogs.com/roland1982/p/3455961.html
Copyright © 2011-2022 走看看