web-dev-qa-db-fra.com

Ajouter la coloration syntaxique GoLang pour VIM

J'essaie d'ajouter la syntaxe de langage Go surlignée à VIM sur Ubuntu avec les ressources et la direction fournies ici http://go-lang.cat-v.org/text-editors/vim/ .

Go est fourni avec un fichier go.vim qui contient les paramètres de syntaxe pour VIM. La page ci-dessus contient les instructions suivantes.

Placez $ GOROOT/misc/vim/syntax/go.vim dans ~/.vim/syntax/et mettez ce qui suit dans ~/.vim/ftdetect/go.vim:

au BufRead,BufNewFile *.go set filetype=go 

C’est plus ou moins la même procédure de personnalisation de la syntaxe de vim que j’ai vue ailleurs ( Vim 7.3 sur Ubuntu 12.10 n’a pas le répertoire 'ftplugin' nulle part et https: // github. com/jnwhiteh/vim-golang/blob/master/readme.txt )

Je pense donc que je fais le bon choix lorsque je crée des répertoires:
~/.vim
~/.vim/syntaxe
~/.vim/ftdetect

et suivez les instructions ci-dessus en ajoutant 

go.vim dans ~/.vim/syntax / et créer un fichier, go.vim, dans ~/.vim/ftdetect/qui contient

au BufRead,BufNewFile *.go set filetype=go

Cependant, la coloration syntaxique ne semble pas se produire. Dois-je faire quelque chose pour forcer VIM à examiner ces nouveaux fichiers de paramètres?

52
rocketas

vous pouvez simplement ajouter ces lignes à votre ~/.vimrc:

set rtp+=$GOROOT/misc/vim
filetype plugin indent on
syntax on

EDITCeci suppose que filetype plugin indent off se trouve avant ces lignes (c'est-à-dire au début du fichier .vimrc) et peut causer des problèmes si ce n'est pas le cas. Voir la réponse de @ peterSO ci-dessous pour la version plus sûre.

18
none

METTRE À JOUR:

Notes de version de Go 1.4

Divers

Répertoire divers de niveau supérieur du référentiel standard utilisé pour contenir Go support pour les éditeurs et les IDE: plugins, initialisation scripts et ainsi de suite. Leur entretien prenait beaucoup de temps et avait besoin d’aide externe car de nombreux éditeurs répertoriés n’étaient pas utilisés par les membres de l'équipe principale. Cela nous obligeait également à prendre des décisions sur quel plugin était le mieux pour un éditeur donné, même pour les éditeurs que nous faisons Ne pas utiliser. La communauté Go dans son ensemble est beaucoup mieux à même de gérer ces informations. Par conséquent, dans Go 1.4, ce support a été supprimé de le référentiel. Au lieu de cela, il y a une liste curative et informative de ce qui est disponible sur une page wiki .


La distribution standard de Go inclut les fichiers Go de Vim dans go/misc/vim/. Ce répertoire contient un fichier readme.txt qui contient les instructions d’installation. 

readme.txt

Plugins Vim pour Go (http://golang.org)

Pour utiliser tous les plugins Vim, ajoutez ces lignes à votre $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 vous souhaitez sélectionner moins de plugins, utilisez les instructions du reste de ce fichier.

<< .. SNIP .. >>

61
peterSO

Sur Debian, je suppose que c'est la même chose sur Ubuntu, vous venez de:

Sudo apt-get install vim-gocomplete gocode vim-syntax-go
vim-addon-manager install go-syntax
vim-addon-manager install gocode
40
Thomas

Pour une coloration syntaxique optimale, essayez https://github.com/fatih/vim-go

C'est un nouveau projet qui consolide de nombreux plugins vim et ajoute de nombreuses fonctionnalités. Du readme:

  • Mise en évidence améliorée de la syntaxe, telle que Fonctions, Opérateurs, Méthodes ..
  • Assistance à la complétion automatique via gocode
  • Mieux vaut enregistrer, conserve la position du curseur et ne casse pas l'historique des annulations
  • Aller au symbole/déclaration avec godef
  • Importer automatiquement des packages via goimports
  • Compilez et construisez votre paquet, installez-le avec go install
  • allez courir rapidement votre/vos fichier (s) actuel (s)
  • Exécutez go test et voyez toutes les erreurs dans la fenêtre du correctif
  • Lint votre code avec golint
  • Exécutez votre code chez le vétérinaire pour détecter les erreurs statiques.
  • Outil d'analyse de source avancé avec Oracle
  • Lister tous les fichiers sources et dépendances
  • Vérifier avec errcheck les erreurs non vérifiées.
  • Extraits intégrés et améliorés. Prend en charge ultisnips ou neosnippet
  • Partagez votre code actuel sur play.golang.org
18
Greg Ingelmo

le 25/Jan/2015

S'il vous plaît voir https://github.com/golang/go/wiki/IDEsAndTextEditorPlugins comme maintenant tout support de l'éditeur et Shell dans le repo Go est supprimé ( https://codereview.appspot.com/105470043 )

9
HVNSweeting

Pour quelque raison que ce soit, en dehors de mes propres décisions, nous avons installé Golang sur nos machines virtuelles de développement avec les paquets Debian. Cette distribution particulière de vim ne vient avec aucun des bonus pour vim aussi loin que j'ai pu le dire à partir d'une recherche. Quoi qu'il en soit, j'ai décidé de suivre la voie de la fraude afin de déployer rapidement les goodies sur toutes ces machines virtuelles de développement. Vous pourriez probablement utiliser cette méthode pour créer une marionnette ou quelque chose comme vous voulez, mais nous ne l'avons pas fait. Quoi qu'il en soit, voici ce que j'ai fait:

Étape 1: Installez la vundle: https://github.com/gmarik/vundle

Étape 2: placez cette ligne dans votre fichier .vimrc (à partir d’ici, bien sûr: https://github.com/jnwhiteh/vim-golang ), puis exécutez vim à partir de la ligne de commande, à l’aide de vim +BundleInstall +qall ou depuis vim avec :BundleInstall

Bundle 'jnwhiteh/vim-golang'

Étape 3: Sauvegardez ce petit script bash que j'ai créé en tant que govim.sh ou autre chose, chmod +x govim.sh, et lancez-le comme ./govim.sh

Script comme suit:

#!/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! Vous avez maintenant tous les bonus installés, et quelqu'un me corrige si je me trompe, mais peut-être plus que ce qui vient avec la distribution officielle de Golang. Je ne sais pas non plus si cela n’a pas encore été essayé, mais je pense que le runtimepath/rtp est surchargé si vous utilisez Vundle avec les autres réponses ici de toute façon.

3
Dmitri DB

Cette page dit 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

Cela a fonctionné pour moi, seulement je n'ai pas trouvé le répertoire /misc/vim/go.vim au début. Donc, j'ai copié les fichiers d'un autre ordinateur qui avait installé allez sur/usr/local/go/...

3
Mattis Asp

Je n'ai pas trouvé d'instructions sur l'activation de la coloration syntaxique vim pour CentOS 7. J'ai testé les instructions suivantes pour pouvoir utiliser CentOS 7.3.1611. Commencez par créer le répertoire suivant dans votre répertoire personnel:

$ mkdir ~/.vim/ftdetect/

Ensuite, créez un fichier nommé go.vim dans le répertoire ci-dessus avec le contenu:

au BufRead,BufNewFile *.go set filetype=go

Téléchargez le fichier de définition de syntaxe pour Go: vim.go . Transférez-le dans le bon répertoire système afin que plusieurs utilisateurs puissent le partager:

$ Sudo mv -i go.vim /usr/share/vim/vim74/syntax/
1
pdp

Ce devrait être facile comme 1, 2, 3:

  1. Téléchargez le fichier vim.go et placez-le dans ~/.vim/syntax sous le nom vim.go (créez le répertoire syntax si vous ne l'avez pas déjà).

  2. Si vous n'avez pas déjà le fichier ~/.vim/ftdetect/go.vim, créez-le (et le dossier si nécessaire).

  3. Dans .vim/ftdetect/go.vim, ajoutez la ligne suivante: au BufRead,BufNewFile *.go set filetype=go

0
tomfl