1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-03-23 01:09:56 +08:00
2022-05-27 11:48:19 +08:00

3.1 KiB

title description
SpaceVim golang layer This layer is for golang development. It also provides additional language-specific key mappings.

Available Layers >> lang#go

Description

This layer is for golang development. It also provides additional language-specific key mappings.

Install

To use this configuration layer, update your custom configuration file with:

[[layers]]
  name = "lang#go"

After the installation, run :GoInstallBinaries inside vim.

To enable tagbar support, you need to install gotags:

go install github.com/jstemmer/gotags@latest

Features

  • auto-completion
  • syntax checking
  • goto definition
  • reference finder

Layer options

  1. enabled_linters: set a list of enabled lint for golang. by default this option is ['golint']. The available linters includes: go, gometalinter
  2. go_file_head: the default file head for golang source code.
[layers]
name = "lang#go"
go_file_head = [
    '#!/usr/bin/python3',
    '# -*- coding : utf-8 -*-'
    ''
]
  1. go_interpreter: Set the interpreter of go.
[[layers]]
name = 'lang#go'
go_interpreter = '~/download/bin/go'
  1. format_on_save: enable/disable code formation when save go file. This options is disabled by default, to enable it:
[[layers]]
name = 'lang#go'
format_on_save = true

Key bindings

Import key bindings:

Key Bindings Descriptions
SPC l a go alternate
SPC l b go build
SPC l c go coverage
SPC l d go doc
SPC l D go doc vertical
SPC l e go rename
SPC l g go definition
SPC l G go generate
SPC l h go info
SPC l i go implements
SPC l I implement stubs
SPC l k add tags
SPC l K remove tags
SPC l l list declarations in file
SPC l m format imports
SPC l M add import
SPC l r go run
SPC l s fill struct
SPC l t go test
SPC l v freevars
SPC l x go referrers

Code formatting:

the default key bindings for formatting current buffer is SPC b f, and this key bindings is defined in format layer. You can also use g= to indent current buffer.

To make neoformat support go files, you should have go-fmt command available, or install goimports. go-fmt is delivered by golang's default installation, so make sure you have correctly setup your go environment.