Ajouter la mise en évidence de la syntaxe de GoLang pour VIM
j'essaie d'ajouter la mise en évidence de la syntaxe de Go language à VIM sur ubuntu avec les ressources et la direction fournies ici http://go-lang.cat-v.org/text-editors/vim / .
Go est livré avec un go.vim
fichier qui contient les paramètres de syntaxe pour VIM et la page ci-dessus offre les instructions suivantes
Place $GOROOT/misc/vim/syntax/go.vim ~/.vim/syntax/ et de mettre ce qui suit dans ~/.vim / ftdetect / go.vim:
au BufRead,BufNewFile *.go set filetype=go
c'est plus ou moins la même veine de procédure pour personnaliser la syntaxe vim que j'ai vu ailleurs ( Vim 7.3 sur Ubuntu 12.10 n'ont pas 'ftplugin répertoire de n'importe où et https://github.com/jnwhiteh/vim-golang/blob/master/readme.txt )
donc je pense que je fais la bonne chose quand je crée des répertoires:
~ / .vim
~ / .vim / syntaxe
~ / .vim / ftdetect
et suivre les instructions ci-dessus en ajoutant
aller.vim ~/.vim / syntaxe/ et la création d'un fichier, allez.vim, dans ~/.vim / ftdetect / qui contient
au BufRead,BufNewFile *.go set filetype=go
pourtant la mise en évidence de la syntaxe ne semble pas se produire. Y a-t-il quelque chose que je dois faire pour forcer VIM à regarder ces nouveaux fichiers de paramètres?
9 réponses
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.-à-d. 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.
mise à jour:
le répertoire misc de premier niveau du dépôt standard utilisé pour contenir Go prise en charge des éditeurs et des IDEs: plugins, initialisation scripts et ainsi de suite. Le maintien de ces devenait de temps et besoin d'aide externe parce que beaucoup des éditeurs énumérés n'ont pas été utilisés par les membres de l'équipe de base. Cela nous obligeait aussi à prendre des décisions. à propos de quel plugin était le mieux pour un éditeur donné, même pour les éditeurs que nous faisons ne pas utiliser. La collectivité de Go en général est beaucoup mieux placée pour gérer cette information. Allez 1.4, donc, ce soutien a été retiré de référentiel. Au lieu de cela, il y a une curated, liste informative de ce qui est disponible sur une page wiki .
Le standard Aller la distribution inclut les fichiers Go pour Vim dans go/misc/vim/
. Ce répertoire contient un fichier readme.txt
qui contient les instructions d'installation.
Vim plugins pour Aller (
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 voulez sélectionner moins de plugins, utilisez les instructions dans le reste de ce fichier.
<<..SNIP..>>
sur Debian, je suppose que c'est la même chose sur ubuntu, vous juste:
sudo apt-get install vim-gocomplete gocode vim-syntax-go
vim-addon-manager install go-syntax
vim-addon-manager install gocode
pour la meilleure syntaxe, essayez https://github.com/fatih/vim-go
c'est un nouveau projet qui consolide de nombreux plugins vim et ajoute beaucoup de fonctionnalités. Extrait du readme:
- amélioration de la mise en évidence syntaxique, comme les fonctions, les opérateurs, les méthodes..
- saisie semi-Automatique du support par gocode
- mieux gofmt sur Enregistrer, garde la position du curseur et ne casse pas votre historique d'annulation
- aller au symbole / déclaration avec godef
- importer automatiquement des paquets via goimports
- compilez et allez construire votre paquet, installez-le avec go install
- allez exécuter rapidement votre/Vos fichier (s) actuel (s)
- Exécuter aller tester et de voir toutes les erreurs dans le quickfix fenêtre
- les Peluches de votre code avec golint
- Exécuter votre code creux d'aller de l'efp pour attraper statique erreur.
- Avancée de la source de l'outil d'analyse avec oracle
- Liste tous les fichiers source et les dépendances
- Vérification avec errcheck pour les erreurs non vérifiées.
- snippets intégrés et améliorés. Supports ultisnips ou neosnippet 151980920"
- partagez votre code actuel avec play.golang.org
le 25 / Jan / 2015
Please see https://github.com/golang/go/wiki/IDEsAndTextEditorPlugins comme maintenant tous les editor & shell support dans Go repo est supprimé ( https://codereview.appspot.com/105470043 )
pour quelque raison que ce soit en dehors de ma propre prise de décision, nous avons fait installer Golang sur nos VMs dev par les paquets Debian. Cette distribution particulière de vim ne vient pas avec les bonnes choses pour vim aussi loin que j'ai pu le dire d'une recherche autour de lui. Quoi qu'il en soit, j'ai décidé de suivre la route de vundle afin de déployer rapidement les bonnes choses sur toutes ces VM dev. Vous pourriez probablement utiliser cette méthode pour transformer puppet ou quelque chose comme ça, si vous voulez, mais nous ne l'avons pas fait. De toute façon, voici ce que j'ai did:
Étape 1: Installer vundle: https://github.com/gmarik/vundle
Étape 2: Mettez cette ligne dans votre .vimrc (c'est d'ici, bien sûr: https://github.com/jnwhiteh/vim-golang ), puis exécuter vim à partir de la ligne de commande comme vim +BundleInstall +qall
ou à partir de vim avec :BundleInstall
Bundle 'jnwhiteh/vim-golang'
Etape 3: Enregistrer ce petit script de bash que j'ai créé govim.sh ou n'importe quoi., chmod +x govim.sh
, et l'exécuter 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 goodies installés, et quelqu'un me corriger si je me trompe sur ce, mais peut-être plus que ce qui vient avec la distribution officielle de Golang. Je ne sais pas non plus si ce n'est pas encore essayé, mais je pense que le runtimepath/rtp est malmené si vous utilisez Vundle avec les autres réponses ici de toute façon.
Ce 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
ça a marché pour moi, mais je n'ai pas trouvé le /misc/vim/go.vim directory au début. J'ai donc copié les fichiers d'un autre ordinateur qui avait installé go on /usr/local/go/...
Je n'ai pas trouvé d'instructions sur la mise en surbrillance de la syntaxe vim pour CentOS 7. Avoir testé les instructions de travail suivantes sur CentOS 7.3.1611. Tout d'abord, créez 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.allez . Transfert vers la droite répertoire à l'échelle du système afin que plusieurs utilisateurs puissent partager:
$ sudo mv -i go.vim /usr/share/vim/vim74/syntax/
S'avère que les directions ci-dessus étaient légèrement ambiguës.
~/.vim/syntax/go.vim
doit avoir le même contenu que ~/.vim/ftdetect/go.vim
seulement ~/.vim/ftdetect/go.vim
doit être ajouté avec au BufRead,BufNewFile *.go set filetype=go
.
si pris au pied de la lettre, le mode d'emploi vous indique de créer un fichier ~/.vim/ftdetect/go.vim
contenant seulement
au BufRead,BufNewFile *.go set filetype=go
je suppose que c'est là que la connaissance du contexte devrait intervenir. Seulement, je n'avais jamais fait cela avant et n'avaient pas un tel contexte. Merci à tous!