https://github.com/kaihendry/goide
Docker run to a sane vim-go setup
https://github.com/kaihendry/goide
debugger docker editor go golang gopls minimal vim
Last synced: 12 months ago
JSON representation
Docker run to a sane vim-go setup
- Host: GitHub
- URL: https://github.com/kaihendry/goide
- Owner: kaihendry
- License: mit
- Created: 2021-04-29T08:25:16.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2021-12-06T13:47:55.000Z (over 4 years ago)
- Last Synced: 2025-07-06T17:13:59.020Z (12 months ago)
- Topics: debugger, docker, editor, go, golang, gopls, minimal, vim
- Language: Vim script
- Homepage: https://hub.docker.com/repository/docker/hendry/goide
- Size: 23.4 KB
- Stars: 23
- Watchers: 2
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
vim with:
* [vim-go](https://github.com/fatih/vim-go) for a Golang IDE
* [dlv](https://github.com/go-delve/delve) for debugging
* :GoTests for generating tests
# Try it!
alias g='docker run -it --rm -v $(pwd):/src hendry/goide:latest $@'
Prefer a shell instead?
docker run -it --rm --entrypoint=bash -v $(pwd):/src hendry/goide
# Keyboard shortcuts
\\ is called the "leader" key in vim.
* \r Run current buffer
* F12 Show definition, C-o to switch back
* C-x C-o Autocomplete with gopls
* C-g Show functions / declarations
* \t Go test, \ga switch between test and code
* K Show documentation
## Debug
* F5 Start / Continue
* F8 Stop
* F9 Toggle breakpoint
* F10 Debug next line
* F11 Debug step into next function
## Super handy commands
* :GoFillStruct
* :GoRename
* :GoAddTags
* :GoPlay
Do read https://github.com/fatih/vim-go-tutorial
# Compared to VS code
Following https://www.youtube.com/watch?v=1MXIGYrMk80 with
https://golang.org/doc/code, this project has a couple of advantages:
* Docker image streamlines setup. No hoop jumping to install the entire environment assuming you have Docker and `make` installed
* Efficient vim key bindings, use `vimtutor` to learn how to edit with it
* Can be used easily upon remote environments, a **terminal environment** is _all you need_
* `:Gotests` makes it easier to generate tests
# Elsewhere
* https://tpaschalis.github.io/vim-go-setup/
* https://github.com/kaihendry/nvim