intellij - vim go go to definition
Agregue el resaltado de sintaxis de GoLang para VIM (8)
ACTUALIZAR:
El directorio misc de nivel superior del repositorio estándar solía contener compatibilidad con Go para editores e IDE: complementos, scripts de inicialización, etc. Mantenerlos requería mucho tiempo y necesitaba ayuda externa porque muchos de los editores enumerados no eran utilizados por los miembros del equipo central. También requería que tomáramos decisiones sobre qué plugin era mejor para un editor dado, incluso para editores que no usamos. La comunidad Go en general es mucho más adecuada para administrar esta información. En Go 1.4, por lo tanto, este soporte se ha eliminado del repositorio. En cambio, hay una lista curada e informativa de lo que está disponible en una github.com/golang/go/wiki/IDEsAndTextEditorPlugins .
La distribución Go estándar incluye archivos Go para Vim en go/misc/vim/
. Este directorio contiene un archivo readme.txt
que contiene instrucciones de instalación.
Complementos de Vim para Go (
http://golang.org
)Para usar todos los complementos de Vim, agregue estas líneas a su
$HOME/.vimrc
.
" Some Linux distributions set filetype in /etc/vimrc. " Clear filetype flags before changing runtimepath to force Vim to reload them. filetype off filetype plugin indent off set runtimepath+=$GOROOT/misc/vim filetype plugin indent on syntax on
Si desea seleccionar menos complementos, use las instrucciones en el resto de este archivo.
<< .. SNIP .. >>
Estoy intentando agregar el resaltado de la sintaxis del lenguaje Go a VIM en ubuntu con los recursos y la dirección proporcionados aquí http://go-lang.cat-v.org/text-editors/vim/ .
Go viene con un archivo go.vim
que contiene configuraciones de sintaxis para VIM y la página anterior ofrece las siguientes instrucciones
Coloque $ GOROOT / misc / vim / syntax / go.vim en ~ / .vim / sintaxis / y ponga lo siguiente en ~ / .vim / ftdetect / go.vim:
au BufRead,BufNewFile *.go set filetype=go
Esta es más o menos la misma veta de procedimiento para personalizar la sintaxis de vim que he visto en otros lugares ( Vim 7.3 en Ubuntu 12.10 no tiene el directorio ''ftplugin'' en ninguna parte y https://github.com/jnwhiteh/vim-golang/blob/master/readme.txt )
Así que creo que estoy haciendo lo correcto cuando creo directorios:
~ / .vim
~ / .vim / sintaxis
~ / .vim / ftdetect
y siga las instrucciones anteriores agregando
go.vim a ~ / .vim / syntax / y crear un archivo, go.vim, en ~ / .vim / ftdetect / que contenga
au BufRead,BufNewFile *.go set filetype=go
Sin embargo, el resaltado de sintaxis no parece ocurrir. ¿Hay algo que deba hacer para obligar a VIM a mirar estos nuevos archivos de configuración?
En Debian, supongo que es lo mismo en Ubuntu, simplemente:
sudo apt-get install vim-gocomplete gocode vim-syntax-go
vim-addon-manager install go-syntax
vim-addon-manager install gocode
Esta http://go-lang.cat-v.org/text-editors/vim/ dice que:
Place $GOROOT/misc/vim/syntax/go.vim in ~/.vim/syntax/
and put the following in ~/.vim/ftdetect/go.vim:
au BufRead,BufNewFile *.go set filetype=go
Me funcionó, pero al principio no encontré el directorio /misc/vim/go.vim. Así que copié los archivos de otra computadora que tenía instalada, vaya a / usr / local / go / ...
Para obtener el mejor resaltado de sintaxis, pruebe github.com/fatih/vim-go
Es un proyecto nuevo que consolida muchos complementos de vim y agrega muchas funciones. Del archivo léame:
- Mejorado resaltado de sintaxis, como funciones, operadores, métodos ...
- Soporte de autocompletado a través de gocode
- Mejora el ahorro al guardar, mantiene la posición del cursor y no rompe tu historial de deshacer
- Ir a símbolo / declaración con godef
- Importe paquetes automáticamente a través de goimports
- Compila y crea tu paquete, instálalo con ir a instalar
- ejecuta rápidamente tus archivos / archivos actuales
- Ejecute la prueba de ir y vea los errores en la ventana de revisión rápida
- Lint tu código con golint
- Ejecute su código a través de vete para detectar errores estáticos.
- Herramienta de análisis de fuente avanzada con oráculo
- Listar todos los archivos fuente y dependencias
- Comprobando con errcheck para detectar errores no verificados.
- Recortes integrados y mejorados. Compatible con Ultisnips o Neosnippet
- Comparta su código actual a play.golang.org
Por alguna razón fuera de mi propia toma de decisiones, Golang instaló Golang en nuestras máquinas virtuales de desarrollo por paquetes Debian. Esta distribución particular de vim no viene con ninguna de las cosas buenas para vim, por lo que pude deducir de una búsqueda a su alrededor. De todos modos, decidí ir a la ruta vundle para implementar rápidamente las golosinas en todas estas máquinas virtuales dev. Probablemente puedas trabajar este método en marionetas o algo así si quisieras, aunque no hicimos eso. De todos modos, esto es lo que hice:
Paso 1: Instalar vundle: https://github.com/gmarik/vundle
Paso 2: ponga esta línea en su .vimrc (es de aquí, por supuesto: vim-golang ), y luego ejecute vim desde la línea de comando como vim +BundleInstall +qall
o desde dentro vim con :BundleInstall
Bundle ''jnwhiteh/vim-golang''
Paso 3: guarde este pequeño script bash que elevé como govim.sh o lo que sea, chmod +x govim.sh
, y lo ./govim.sh
como ./govim.sh
Script de la siguiente manera:
#!/bin/bash
mkdir $HOME/.vim/ftdetect
mkdir $HOME/.vim/syntax
mkdir $HOME/.vim/autoload
mkdir $HOME/.vim/autoload/go
mkdir $HOME/.vim/ftplugin
mkdir $HOME/.vim/ftplugin/go
mkdir $HOME/.vim/indent
mkdir $HOME/.vim/compiler
mkdir $HOME/.vim/plugin
mkdir $HOME/.vim/plugin/godoc
ln -s $HOME/.vim/bundle/vim-golang/ftdetect/gofiletype.vim $HOME/.vim/ftdetect
ln -s $HOME/.vim/bundle/vim-golang/syntax/go.vim $HOME/.vim/syntax/
ln -s $HOME/.vim/bundle/vim-golang/autoload/go/complete.vim $HOME/.vim/autoload/go/
ln -s $HOME/.vim/bundle/vim-golang/ftplugin/go.vim $HOME/.vim/ftplugin/
ln -s $HOME/.vim/bundle/vim-golang/ftplugin/go/*.vim $HOME/.vim/ftplugin/go/
ln -s $HOME/.vim/bundle/vim-golang/indent/go.vim $HOME/.vim/indent/
ln -s $HOME/.vim/bundle/vim-golang/compiler/go.vim $HOME/.vim/compiler/
ln -s $HOME/.vim/bundle/vim-golang/plugin/godoc/godoc.vim $HOME/.vim/plugin/godoc/
ln -s $HOME/.vim/bundle/vim-golang/syntax/godoc.vim $HOME/.vim/syntax/
Kaching! Ahora tiene todas las cosas buenas instaladas, y alguien me corrige si me equivoco en esto, pero quizás más de lo que viene con la distribución oficial de Golang. No sé si esto no lo he intentado todavía, pero creo que el runtimepath / rtp queda destrozado si usas Vundle con las otras respuestas aquí de todos modos.
Resulta que las instrucciones anteriores fueron ligeramente ambiguas.
~/.vim/syntax/go.vim
debe tener los mismos contenidos que ~/.vim/ftdetect/go.vim
solo ~/.vim/ftdetect/go.vim
debe adjuntarse con au BufRead,BufNewFile *.go set filetype=go
.
Si se toma literalmente, las instrucciones le dicen que cree un archivo ~/.vim/ftdetect/go.vim
contenga solo
au BufRead,BufNewFile *.go set filetype=go
Supongo que ahí es donde debería entrar el conocimiento contextual. Solo que nunca antes había hecho esto y no tenía ese contexto. ¡Gracias a todos!
el 25 / Ene / 2015
Por favor, consulte github.com/golang/go/wiki/IDEsAndTextEditorPlugins ya que ahora se elimina todo el soporte de editor y shell en Go repo ( https://codereview.appspot.com/105470043 )
simplemente puede agregar estas líneas a su ~/.vimrc
:
set rtp+=$GOROOT/misc/vim
filetype plugin indent on
syntax on
EDITAR Esto supone que el filetype plugin indent off
antes de estas líneas (es decir, al comienzo del archivo .vimrc
) y puede causar problemas si no es así. Vea la respuesta de @ peterSO a continuación para la versión más segura.