go语言环境vim配置详解


当前第2页 返回上一页

我们在.vimrc中添加如下setting:

1

2

3

4

5

6

7

8

9

" YCM settings

let g:ycm_key_list_select_completion = ['', '']

let g:ycm_key_list_previous_completion = ['']

let g:ycm_key_invoke_completion = '<C-Space>'

 

" UltiSnips setting

let g:UltiSnipsExpandTrigger="<tab>"

let g:UltiSnipsJumpForwardTrigger="<c-b>"

let g:UltiSnipsJumpBackwardTrigger="<c-z>"

这样让YCM通过回车和向下的箭头来做list item正向选择,通过向上箭头做反向选择。通过ctrl+space来原地触发补齐提示。

而ultisnips则是用tab做snippet展开,ctrl+b正向切换占位符,ctrl+z反向切换占位符。

四、.vimrc

前面讲到了vim-go有许多命令,在:xx模式下执行多显不便,于是你可以定义一些Mappings,比如:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

" set mapleader

 let mapleader = ","

 

 " vim-go custom mappings

 au FileType go nmap <Leader>s <Plug>(go-implements)

 au FileType go nmap <Leader>i <Plug>(go-info)

 au FileType go nmap <Leader>gd <Plug>(go-doc)

 au FileType go nmap <Leader>gv <Plug>(go-doc-vertical)

 au FileType go nmap <leader>r <Plug>(go-run)

 au FileType go nmap <leader>b <Plug>(go-build)

 au FileType go nmap <leader>t <Plug>(go-test)

 au FileType go nmap <leader>c <Plug>(go-coverage)

 au FileType go nmap <Leader>ds <Plug>(go-def-split)

 au FileType go nmap <Leader>dv <Plug>(go-def-vertical)

 au FileType go nmap <Leader>dt <Plug>(go-def-tab)

 au FileType go nmap <Leader>e <Plug>(go-rename)  

这样我们在命令模式下,输入<,>+<r>就是运行 当前main包,以此类推。

另外下面这个配置使得我们在save file时既可以格式化代码,又可以自动插入包导入语句(或删除不用的包导入语句)。

1

2

" vim-go settings

let g:go_fmt_command = "goimports"

到这里,我们的Vim Golang开发环境就基本搭建好了。snippet+实时补齐让你Coding如飞!

五、.vimrc文件

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

下面是截至目前为止全量.vimrc文件的内容:

 

set nocompatible              " be iMproved, required

filetype off                  " required

colorscheme molokai

 

" set the runtime path to include Vundle and initialize

set rtp+=~/.vim/bundle/Vundle.vim

call vundle#begin()

 

" let Vundle manage Vundle, required

Plugin 'gmarik/Vundle.vim'

Plugin 'fatih/vim-go'

Plugin 'Valloric/YouCompleteMe'

 

Plugin 'SirVer/ultisnips'

 

" All of your Plugins must be added before the following line

call vundle#end()            " required

filetype plugin indent on    " required

 

" set mapleader

let mapleader = ","

 

" vim-go custom mappings

au FileType go nmap <Leader>s <Plug>(go-implements)

au FileType go nmap <Leader>i <Plug>(go-info)

au FileType go nmap <Leader>gd <Plug>(go-doc)

au FileType go nmap <Leader>gv <Plug>(go-doc-vertical)

au FileType go nmap <leader>r <Plug>(go-run)

au FileType go nmap <leader>b <Plug>(go-build)

au FileType go nmap <leader>t <Plug>(go-test)

au FileType go nmap <leader>c <Plug>(go-coverage)

au FileType go nmap <Leader>ds <Plug>(go-def-split)

au FileType go nmap <Leader>dv <Plug>(go-def-vertical)

au FileType go nmap <Leader>dt <Plug>(go-def-tab)

au FileType go nmap <Leader>e <Plug>(go-rename)

 

" vim-go settings

let g:go_fmt_command = "goimports"

 

" YCM settings

let g:ycm_key_list_select_completion = ['', '']

let g:ycm_key_list_previous_completion = ['', '']

let g:ycm_key_invoke_completion = '<C-Space>'

 

" UltiSnips settings

let g:UltiSnipsExpandTrigger="<tab>"

let g:UltiSnipsJumpForwardTrigger="<c-b>"

let g:UltiSnipsJumpBackwardTrigger="<c-z>"

更多golang知识请关注golang教程栏目。

以上就是go语言环境vim配置详解的详细内容,更多文章请关注木庄网络博客!!

返回前面的内容

相关阅读 >>

如何使用Go优雅地撰写单元测试

一个基于 beeGo 开发的社交商城博客系统

Golang 实现bitmap

一周 Go world 新鲜事

Golang位运算符

Go语言之错误处理

Go-carbon1.2.0发布了!完善优化对orm的多场景支持

[系列] - Go-gin-api 路由中间件 - 签名验证(七)

arts #5

安装Go语言支持及Gogs版本管理工具

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...

    正在狠努力加载,请稍候...