zoukankan      html  css  js  c++  java
  • vim如何配置go语言环境

    go语言没有如source insight般优秀的编辑器,试用了多种,vim算最好的,其次可以用liteide(有反查变量函数引用点、修改行变色功能),两者可配合使用。

    更新:最好的是idea+go插件

    下面是一步步搭建vim go语言编辑环境的过程。

    ubuntu为例,前提:go开发环境配置好、git安装好。

    安装 Pathogen

    1. 前往http://www.vim.org/scripts/script.php?script_id=2332,找到下方的最新版 Package ZIP 包下载链接;

    2. 下载解压后你会得到一个名称为 autoload 的目录,将目录下的文件 pathogen.vim 拷贝至 ~/.vim/autoload/pathogen.vim

    3. 编辑 ~/.vimrc 文件,在顶部加入行 call pathogen#infect()

    安装 VIM-GO 插件

    装好了插件管理器,就可以开始安装我们想要的插件了。

    1. 进入目录 ~/.vim/bundle 后执行命令 git clone https://github.com/fatih/vim-go.git
    2. 编辑 ~/.vimrc 文件,加入以下内容(最后一行用于禁止自动下载):
      syntax enable
      filetype plugin on
      set number
      let g:go_disable_autoinstall = 0

        此时,插件本身已经安装完成,可以根据 github.com/fatih/vim-go 的说明进行使用,其中要指出的是 <C-x><C-o> 为代码补全提示,且一般需要在输入 . 操作符之后使用。

      默认有一些高亮未打开,在.vimrc使用以下打开:
    let g:go_highlight_functions = 1
    let g:go_highlight_methods = 1
    let g:go_highlight_structs = 1
    let g:go_highlight_operators = 1
    let g:go_highlight_build_constraints = 1
    高亮效果:
     
    在安装完后,打开vim,输入:goInstallBinaries安装各插件。
    再在.vimrc中加一行
    let g:go_fmt_command = "goimports"
    自动import对应文件。
     

    安装 neocomplete

    如果想要实时的代码补全提示,可以通过安装 neocomplete 插件来实现,不过它对 VIM 的版本有比较高的要求,具体可以查看它的主页 github.com/Shougo/neocomplete.vim

    1. 进入目录 ~/.vim/bundle 后执行命令 git clone https://github.com/Shougo/neocomplete.vim.git
    2. 编辑 ~/.vimrc 文件,加入行 let g:neocomplete#enable_at_startup = 1。这样就能在启动 VIM 时自动开启实时补全功能。

    安装ctags与gotags

    1. sudo apt-get install ctags,然后 go get -u github.com/jstemmer/gotags 安装 Go 语言的相关解析器。
    2. ~/.vimrc 文件加入以下内容:
    let g:tagbar_type_go = {
         'ctagstype' : 'go',
         'kinds'     : [
             'p:package',
             'i:imports:1',
             'c:constants',
             'v:variables',
             't:types',
             'n:interfaces',
             'w:fields',
             'e:embedded',
             'm:methods',
             'r:constructor',
             'f:functions'
         ],
         'sro' : '.',
         'kind2scope' : {
             't' : 'ctype',
             'n' : 'ntype'
         },
         'scope2kind' : {
             'ctype' : 't',
             'ntype' : 'n'
         },
         'ctagsbin'  : 'gotags',
         'ctagsargs' : '-sort -silent'
     }

    使用:光标在某变量或函数上,输入gd跳转。ctrl+o返回



    安装tagbar

    1. 装 tagbar 插件了,和安装 VIM-GO 一样,首先进入 ~/.vim/bundle 目录。然后执行 git clone https://github.com/majutsushi/tagbar.git

    2. 编辑 ~/.vimrc 文件,加入行 nmap <F8> :TagbarToggle<CR>。这是个快捷键映射,你可以把 F8 换成任意的。

     

    安装nerdtree

    1. 进入目录 ~/.vim/bundle 后执行命令 git clone https://github.com/scrooloose/nerdtree.git

    2. 编辑 ~/.vimrc 文件,加入行 map <F7> :NERDTreeToggle<CR>。如此一来,当你需要浏览目录的时候,就可以使用快捷键 <Ctrl+n> 来调出浏览窗口了。

     

    安装mark.vim

     

    从http://www.vim.org/scripts/script.php?script_id=2666下载,用vim打开后输入:so %即可,详见:h vimball

     
     在.vimrc中加入以下进行使用:光标在某单词上,ml高亮单词。mf在同单词间跳转,mn跳转到下一个任意高亮单词。
    nmap ml <Plug>MarkSet #高亮或反高亮一个单词  
    nmap md <Plug>MarkClear
    nmap mn <Plug>MarkSearchAnyNext #跳转到任一下一个高亮单词  
    nmap mp <Plug>MarkSearchAnyPrev
    nmap mf <Plug>MarkSearchCurrentNext #跳转到当前高亮的下一个单词  
    nmap mb <Plug>MarkSearchCurrentPrev 
     
     
     

    安装visualmask

    名称: visualmask
    下载地址:

    http://www.vim.org/scripts/script.php?script_id=1026

    安装: 把下载下来的 visualmask.vim 放到 $HOME/.vim/plugin 目录下。
    帮助: 见 visualmask.vim 的开头部分。

    普通模式下按 ctrl+F2 或者 mm 即可进行设置高亮书签;按 F2 或 Shift+F2 进行跳跃;将光标移动到书签上,再按 ctrl+F2 或 mm 取消该书签。

    使用的过程中遇到一个问题,每次添加书签的时候都会提示:E197: Cannot set language to "en_US"。将 visualmask.vim 的第55行:

    exec ":lan mes en_US"

       改成以下即可解决:

    exec ":lan mes en_US.utf8"g

    安装Ack

    先装ack-grep, sudo apt-get install ack-grep

    git clone https://github.com/mileszs/ack.vim.git ~/.vim/bundle/ack.vim

    vimrc中加入 :

    map <F4> :Ack

    光标停留在某函数或变量名上,按F4回车,即可全局搜索调用处

     
     

    ctrlP找文件快捷

    http://www.vim.org/scripts/download_script.php?src_id=19448

    直接<Ctrl + p>,输入文件名,可像sublime一样快速定位文件。

     
     
    安装了以上插件,作为编辑器已经够用,基本可以无障碍编辑go代码。但对于代码走读,vim不能使用鼠标和图形是天生的残缺,无法像source insight样生成调用关系图,对于走读代码来说效率较低,只能等待source insight支持go语言。
     
    另:liteIDE是支持找出函数调用点的编辑工具,同时也支持编辑行变色,清楚显示已修改代码。但引用关系只能找一层,无法看调用树,可配合vim使用。
  • 相关阅读:
    记录一些博客很不错的~
    Linux软件安装,RPM与YUM
    左递归左递归消除
    LC振荡电路L和C 参数越小 频率越高
    oracle 好书( 09 对象管理 )
    head设计模式 01
    Java中注解(非注释^_^) 转载
    面向接口设计和编程——(面向对象、面向接口、面向过程、面向实现) 转载
    uml 关系(转载 )
    head first 设计模式 02 观察者模式
  • 原文地址:https://www.cnblogs.com/qqmomery/p/4790010.html
Copyright © 2011-2022 走看看