tutorial intellij golang for vim go vim-plugin vim-syntax-highlighting

intellij - vim go go to definition



Agregue el resaltado de sintaxis de GoLang para VIM (8)

ACTUALIZAR:

Notas de la versión de Go 1.4

Miscellany

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.

readme.txt

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!



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.