MacVim打造Golang开发环境

环境配置

  1. 安装 MacVim:

    brew install macvim --with-lua

    PS:

    • neocomplete 插件需要lua支持
    • brew 安装macvim需要全功能Xcode,只安装了Xcode Command Line Tools 不行,App Store 下载太慢,可以找同事通过AirDrop共享 Xcode.app
    • brew linkapps macvim 可以在应用(/Applications)中找到
  2. .vimrc:

    1
    2
    3
    cd ~
    git clone https://github.com/yryz/dotfiles
    ln -s dotfiles/vimrc .vimrc
  3. 安装vim插件:

    安装vim插件管理器Vundle
    git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

    mvim ~/.vimrc 执行 :PluginInstall

  4. 安装字体:

    vimrc中已配置 Source Code Pro 字体,下载字体 解压后,进入TTF目录 全选所有字体打开-》安装字体。

    另外也推荐使用Windows上的 Consolas 字体 「Mac OS X 安装 Consolas 字体

  5. 配置皮肤: (Molokai color scheme for Vim)

    一键完成

    1
    2
    mkdir -p ~/.vim/colors
    curl https://raw.githubusercontent.com/tomasr/molokai/master/colors/molokai.vim > ~/.vim/colors/molokai.vim
  6. vim 插件依赖:

    1. ctrsf.vim插件依赖: brew install ack
    2. tagbar插件依赖: brew install ctags
    3. vim-go插件依赖: vim中执行 :GoInstallBinaries (自己准备好梯子)
  7. MacVim 快捷键冲突映射:
    系统偏好设置-》键盘-》快捷键-》应用快捷键-》添加,选择MacVim.app(brew安装,选择其他,然后Command+Shift+G/usr/local/Cellar/macvim/ 下面找到):

    • Command + P 菜单标题 Print 快捷键 Alt+Command+P
    • Command + F 菜单标题 Find... 快捷键 Alt+Command+F
    • Command + W 菜单标题 Close 快捷键 Alt+Command+W

插件的使用

NERDTree 文件管理器

当前配置没有设置打开自动开启NERDTree,启用可以通过执行 :NERDTree (执行命令支持Tab键补全) 或 快捷键 Command + e

,e 在文件树中查找当前文件(定位的效果)

通过? 查看和取消查看帮助

Tagbar 查看变量函数结构

执行 :Tagbar 或 快捷键 Command + y

通过? 查看和取消查看帮助

CtrlP 快速查找项目文件

快捷键 Command + P

搜索后Ctrl + k 选择上一个文件, Ctrl + j 选择下一个文件, 回车打开

CtrlSF 全局搜索

快捷键 Command + F

默认搜索当前光标下单词,也可以自己输入

Ctrl + j、k 可以在上下搜索匹配处切换

:CtrlSFOpen 可以打开之前的搜索结果窗口,而不是重新搜索

surround.vim 快速处理环绕标签

测试内容:'Hello World, Hello HTTPS!'

cs'" 快速把当前 ' 环绕的字符改为由 " 环绕

cs'<p> 会修改为 <p>Hello World, Hello HTTPS!</p>

有道翻译 (vim-youdao-translater

在普通模式下,按 ,y, 会翻译当前光标下的单词;

visual 模式下选中单词或语句,按 ,y,会翻译选择的单词或语句;

:Ydc 翻译当前光标下单词

:Ydv 翻译在 visual 模式下选中单词或语句

:Yde 手动输入单词

YouCompleteMe && ultisnips

输入时自动提示TAB键可以切换

ife 这类代码片段,通过Ctrl + j 来代替TAB(解决与YouCompleteMe冲突问题)

vim-multiple-cursors 多行编辑插件

实现Sublime Text的快速选择编辑,用法:

选中单词,可以通过 v 或者 *、#来实现,再Ctrl + n 选择下一个相同的。

1
2
3
4
5
" Default mapping
let g:multi_cursor_next_key='<C-n>'
let g:multi_cursor_prev_key='<C-p>'
let g:multi_cursor_skip_key='<C-x>'
let g:multi_cursor_quit_key='<Esc>'

常用快捷键:

注意:小部分快捷键是来自本文提供的配置文件

快捷键 说明
Ctrl + h、j、k、l 可以在拆分窗口、NERDTree、Tagbar间切换,与j、k的组合可以在CtrlP文件搜索插件中选择文件
gd 跳转到golang的定义
Ctrl + o 返回/后退
ci” 修改配对标点符号中的文本内容。
di” 删除配对标点符号中的文本内容。
yi” 复制配对标点符号中的文本内容。
vi” 选中配对标点符号中的文本内容。
cs”` 快速把当前 " 环绕的字符改为由 ` 环绕
cw 修改光标处单词
C 修改到行尾
s 替换光标所处字符,4s 替换4个字符
~ 光标处内容进行大小写转换 (Golang很实用)
ma 标记命名为a
`a 跳转到标记a
c`a 修改到标记a
J 合并当前行和下一行
4j 向下跳转4行
4k 向上跳转4行
I 行首插入
A 行尾插入
Ctrl + f 向前翻一页
Ctrl + b 向后翻一页
15G 跳转到15行
G 跳转到文件底部
gg 跳转到文件头部
f” 行内跳转到字符”处
:split 将屏幕分为上下两个窗口
:vsplit 将屏幕分为左右两个窗口
⌘ + W 关闭文件(不退出macvim)
⌘ + / 注释代码 //
,gr vim-go 通过重构重命名
,ge vim-go 查找函数、变量被哪些地方引用
,gt vim-go :GoTest
,gi vim-go :GoInstall
,ds vim-go 跳转到Go定义,水平拆分
,dv vim-go 跳转到Go定义,垂直拆分
,i go-info 查看光标下类型信息
,b 自动根据文件类型编译或测试当前Go文件
:Gitv 用Vim来查看Git的详细提交信息
Ctrl+t 翻译当前光标下单词,在 visual 模式下翻译选中单词或语句
:GoDecls or :GoDeclsDir 函数、类型定义跳转
:GoCallers or :GoCallees 查找哪些地方调用了当前函数,这个函数调用了哪些
:GoReferrers 查找当前变量的引用
:GoKeyify 可以将无key的struct定义转为带key的

快捷键墙纸

更多插件参考: