62 votes

Ajout de la coloration syntaxique GoLang pour VIM

J'essaie d'ajouter la coloration syntaxique du langage Go à VIM sur ubuntu avec les ressources et les instructions fournies ici. http://go-lang.cat-v.org/text-editors/vim/ .

Go est livré avec un go.vim qui contient les paramètres de syntaxe pour VIM et la page ci-dessus propose 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 

Il s'agit plus ou moins de 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 de répertoire "ftplugin". y https://github.com/jnwhiteh/vim-golang/blob/master/readme.txt )

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

et suivez les instructions ci-dessus en ajoutant

go.vim dans ~/.vim/syntaxe/ et en créant un fichier, go.vim, dans ~/.vim/ftdetect/ qui contient

au BufRead,BufNewFile *.go set filetype=go

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

4 votes

Pour ceux qui arrivent ici par Google, il existe aujourd'hui un paquetage sympa pour Vim : github.com/fatih/vim-go qui emballe plusieurs goodies pour Go.

1 votes

Je voulais juste signaler ici que la documentation officielle de Go à l'adresse suivante code.google.com/p/go-wiki/wiki/IDEsAndTextEditorPlugins Les points suivants github.com/fatih/vim-go également. Il inclut go.vim, si vous ne l'avez pas obtenu dans votre installation pour une raison quelconque (par exemple, vous l'avez obtenu à partir d'un repo de paquets qui ne l'incluait pas) et est facile à installer avec Vundle.

0 votes

Thx @maths le code.googe pointe maintenant aussi vers github.com/golang/go/wiki/IDEsAndTextEditorPlugins

62voto

peterSO Points 25725

UPDATE :

Notes de version 1.4 de Go

Miscellany

Le répertoire misc de premier niveau du référentiel standard utilisé pour contenir le support Go pour les éditeurs et les IDEs : plugins, scripts d'initialisation, etc. d'initialisation et ainsi de suite. La maintenance de ces derniers prenait beaucoup de temps et nécessitait et nécessitait une aide extérieure car de nombreux éditeurs répertoriés n'étaient pas utilisés par les membres de l'équipe centrale. Cela nous obligeait également à prendre des décisions sur le meilleur plugin pour un éditeur donné, même pour les éditeurs que nous n'utilisons pas. n'utilisons pas. La communauté Go dans son ensemble est bien plus à même de gérer ces informations. Par conséquent, dans Go 1.4, ce support a été supprimé du référentiel le référentiel. À la place, il y a une liste informative et soignée de ce qui est disponible sur un page du wiki .


La distribution standard de Go comprend des fichiers Go pour Vim dans go/misc/vim/ . Ce répertoire contient un readme.txt qui contient les instructions d'installation.

readme.txt

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

Pour utiliser tous les plugins de 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 dans le reste de ce fichier.

<<..SNIP..>>

0 votes

Consultez également vim-golang, qui est un miroir des plugins Vim officiels pour golang qui peuvent être facilement installés/mises à jour via Vundle, etc. github.com/jnwhiteh/vim-golang

3 votes

Je ne sais pas si quelqu'un d'autre a eu ce problème mais j'ai essayé d'insérer ces lignes dans mon .vimrc et cela n'a pas fonctionné. J'ai essayé de faire écho à $GOROOT et une ligne vide est sortie. Quel doit être le chemin de $GOROOT ? Ce devrait être un répertoire mais je ne sais pas pourquoi le mien n'a pas de contenu, avez-vous rencontré ce problème ?

4 votes

@CharlieParker J'ai constaté que $GOROOT n'est pas défini après l'installation de go sur ubuntu (via apt-get). J'ai donc ajouté manuellement ceci à mon fichier .bashrc ( export GOROOT="/usr/lib/go" ) - en plus j'ai dû télécharger le tar.gz à partir de code.google.com/p/go/wiki/Downloads?tm=2 et extraire le misc en place ( /usr/lib/go/misc/ ) car cela n'est pas fait lors de l'installation via ubuntu. ref : groups.google.com/forum/#!topic/golang-nuts/zQhCYp0BZp8

40voto

Thomas Points 69

Sous Debian, je suppose que c'est la même chose sous ubuntu, il suffit de :

sudo apt-get install vim-gocomplete gocode vim-syntax-go
vim-addon-manager install go-syntax
vim-addon-manager install gocode

0 votes

Mon installation Wheezy n'a pas de vim-gocomplete o gocode paquets.

0 votes

Vous avez raison : paquets.debian.org/vim-gocomplete seulement pour Jessie et Sid. Mais golang n'est disponible que pour jessie et sid ... avec le paquet .deb.

0 votes

Fonctionne également sous ubuntu 15

23voto

gokcehan Points 4210

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

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

EDIT Cela suppose filetype plugin indent off avant ces lignes (c'est-à-dire le début de .vimrc ) et peut causer des problèmes s'il ne l'est pas. Voir la réponse de @peterSO ci-dessous pour la version la plus sûre.

3 votes

Je ne sais pas si quelqu'un d'autre a eu ce problème mais j'ai essayé d'insérer ces lignes dans mon .vimrc et cela n'a pas fonctionné. J'ai essayé de faire écho à $GOROOT et une ligne vide est sortie. Quel doit être le chemin de $GOROOT ? Ce devrait être un répertoire mais je ne sais pas pourquoi le mien n'a pas de contenu, avez-vous rencontré ce problème ?

2 votes

@charlie-parker : comment s'est déroulée votre installation ? Je l'ai récemment installé sur une Ubuntu 12.04 via apt-get install golang . Il semble que /misc/vim ne soit pas inclus dans les paquets installés par la suite. Une solution consiste à utiliser le fichier vim-golang (de préférence en conjonction avec quelque chose comme agent pathogène ).

1 votes

@CharlieParker J'utilise une installation manuelle et j'ai $GOROOT défini manuellement dans ~/.profile . Comme il s'agit d'une installation manuelle, je l'ai réglé sur /usr/local/go . Vous pouvez également utiliser la solution de @trobter qui devrait également fonctionner.

21voto

Greg Points 51

Pour la meilleure coloration syntaxique, essayez https://github.com/fatih/vim-go

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

  • Amélioration de la mise en évidence de la syntaxe, comme les fonctions, les opérateurs, les méthodes.
  • Support de la complétion automatique via gocode
  • Meilleur gofmt sur l'enregistrement, garde la position du curseur et ne casse pas l'historique des annulations.
  • Aller au symbole/déclaration avec godef
  • Importation automatique de paquets via goimports
  • Compilez et construisez votre paquet, installez-le avec go install.
  • allez exécuter rapidement votre/vos fichier(s) courant(s)
  • Exécutez le test de go et voyez les erreurs éventuelles dans la fenêtre de quickfix.
  • Lint votre code avec golint
  • Exécutez votre code à travers go vet pour attraper les erreurs statiques.
  • Outil avancé d'analyse des sources avec oracle
  • Lister tous les fichiers sources et les dépendances
  • Vérification avec errcheck pour les erreurs non vérifiées.
  • Snippets intégrés et améliorés. Prend en charge les ultisnips ou les neosnippets.
  • Partagez votre code actuel sur play.golang.org

1 votes

Sous CentOS, j'ai réussi à installer vim-go avec yum. #yum install vim-go

2 votes

0 votes

@ColeBittel, avez-vous lu l'article de blog dont vous avez donné le lien ? vim-go est activement maintenu, comme annoncé dans l'article de blog dont vous avez donné le lien. Le projet fondateur ne travaille plus dessus, c'est tout.

4voto

Dmitri DB Points 195

Pour une raison indépendante de ma volonté, Golang a été installé sur nos machines virtuelles de développement par des paquets Debian. Cette distribution particulière de vim n'est livrée avec aucun des goodies pour vim, d'après ce que j'ai pu voir en faisant des recherches. Quoi qu'il en soit, j'ai décidé de suivre la route de vundle afin de déployer rapidement les goodies sur toutes ces VM de développement. Vous pourriez probablement utiliser cette méthode avec une marionnette ou autre si vous le souhaitez, mais nous ne l'avons pas fait. Quoi qu'il en soit, voici ce que j'ai fait :

Étape 1 : Installer vundle : https://github.com/gmarik/vundle

Étape 2 : mettez cette ligne dans votre .vimrc (C'est à partir d'ici, bien sûr : https://github.com/jnwhiteh/vim-golang ), puis lancez vim depuis la ligne de commande comme suit vim +BundleInstall +qall ou à partir de vim avec :BundleInstall

Bundle 'jnwhiteh/vim-golang'

Étape 3 : Sauvegarder ce petit bash script que j'ai préparé en tant que govim.sh ou autre, chmod +x govim.sh et l'exécuter comme suit ./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 toutes les bonnes choses installées, et quelqu'un me corrige si je me trompe, mais peut-être plus que ce qui est fourni avec la distribution officielle de Golang. Je n'en sais rien non plus, n'ayant pas encore essayé, mais je pense que le runtimepath/rtp est bloqué si vous utilisez Vundle avec les autres réponses ici de toute façon.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X