Toevoegen van GoLang-syntaxisaccentuering voor VIM

Ik probeer Go-taalsyntaxismarkering toe te voegen aan VIM op ubuntu met bronnen en instructies die hier worden verstrekt http://go-lang.cat-v.org/text-editors/vim/.

Go wordt geleverd met een go.vim-bestand dat syntaxisinstellingen voor VIM bevat en de bovenstaande pagina biedt de volgende instructies

Plaats $GOROOT/misc/vim/syntax/go.vim in ~/.vim/syntax/ en plaats het volgende in ~/.vim/ftdetect/go.vim:

au BufRead,BufNewFile *.go set filetype=go 

Dit is min of meer dezelfde procedure voor het aanpassen van de vim-syntaxis die ik elders heb gezien
(Vim 7.3 op Ubuntu 12.10 doet’ t hebben overal de map ‘ftplugin’en https://github .com/jnwhiteh/vim-golang/blob/master/readme.txt)

Dus ik denk dat ik het juiste doe als ik mappen maak:
~/.vim
~/.vim/syntaxis
~/.vim/ftdetect

en volg de bovenstaande instructies door

. toe te voegen

go.vim naar ~/.vim/syntax/
en het maken van een bestand, go.vim, in ~/.vim/ftdetect/ dat

. bevat

au BufRead,BufNewFile *.go set filetype=go 

Toch lijkt het accentueren van syntaxis niet voor te komen. Moet ik iets doen om VIM te dwingen naar deze nieuwe instellingenbestanden te kijken?


Antwoord 1, autoriteit 100%

UPDATE:

Go 1.4 release-opmerkingen

Diversen

De misc-directory op het hoogste niveau van de standaard repository bevatte Go
ondersteuning voor editors en IDE’s: plug-ins, initialisatie
scripts enzovoort. Het onderhouden hiervan werd tijdrovend en
externe hulp nodig omdat veel van de vermelde editors niet werden gebruikt
door leden van het kernteam. Het vereiste ook dat we beslissingen moesten nemen
over welke plug-in het beste was voor een bepaalde editor, zelfs voor editors die we doen
niet gebruiken.
De Go-gemeenschap in het algemeen is veel beter geschikt om deze informatie te beheren. In Go 1.4 is deze ondersteuning daarom verwijderd uit
de bewaarplaats. In plaats daarvan is er een samengestelde, informatieve lijst van
wat er beschikbaar is op een wiki-pagina.


De standaard Go-distributie bevat Go-bestanden voor Vim in go/misc/vim/. Deze map bevat een readme.txt-bestand met installatie-instructies.

readme.txt

Vim-plug-ins voor Go (http://golang.org)

Als u alle Vim-plug-ins wilt gebruiken, voegt u deze regels toe aan uw $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

Als je minder plug-ins wilt selecteren, volg dan de instructies in de rest
van dit bestand.

<<..SNIP..>>


Antwoord 2, autoriteit 65%

Op Debian, ik veronderstel dat het hetzelfde is op ubuntu, je gewoon:

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

Antwoord 3, autoriteit 37%

je kunt deze regels gewoon toevoegen aan je ~/.vimrc:

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

Bewerken Dit veronderstelt filetype plugin indent offvoor deze lijnen (dat wil zeggen het begin van .vimrcfile) en kan problemen veroorzaken als het niet. Zie @ antwoord peterSO’s hieronder voor de veiligere versie.


Antwoord 4, gezag 34%

Voor de beste syntax highlighting proberen https://github.com/fatih/vim-go

Het is een nieuw project dat veel vim plugins consolideert en voegt veel functies. Van de readme:

  • Verbeterde syntax highlighting, zoals functies, Operators, Methods ..
  • Auto voltooiing ondersteuning via gocode
  • Betere gofmt op te slaan, houdt de positie van de cursor en breekt niet uw historie van ongedaan maken
  • Ga naar het symbool / verklaring met godef
  • Automatisch pakketten import via goimports
  • Compile en onderweg uw pakket op te bouwen, installeren met go installeren
  • Ga snel uitvoeren van uw huidige bestand / bestanden
  • Uitvoeren gaan testen en zien eventuele fouten in quickfix venster
  • Lint code in met golint
  • Voer uw code trog gaan dierenarts om te vangen statische fouten.
  • Geavanceerd source analyse-instrument met Oracle
  • een lijst van alle bronbestanden en afhankelijkheden
  • Controle met errcheck voor ongecontroleerde fouten.
  • Geïntegreerde en verbeterde fragmenten. Steunen ultisnips of neosnippet
  • Deel je huidige code te play.golang.org

Antwoord 5, Autoriteit 15%

Op 25 / Jan / 2015

Zie https://github.com/golang/go/wiki/IDEsAndTextEditorPluginsals nu allemaal editor & amp; shell steun Go repository verwijderd (https://codereview.appspot.com/105470043 )


Antwoord 6, autoriteit 8%

Ik heb geen instructies over het inschakelen van vim syntax highlighting voor CentOS 7. vinden hebben getest de daaropvolgende instructies te werken aan CentOS 1611/03/07. Maak eerst de volgende map in je home directory:

$ mkdir ~/.vim/ftdetect/

Maak vervolgens een bestand met de naam go.vimin het bovenstaande directory met de inhoud:

au BufRead,BufNewFile *.go set filetype=go

Download de syntax definitie file voor Go: vim.go . Overbrengen naar het juiste systeem-brede directory zodat meerdere gebruikers kunnen delen:

$ sudo mv -i go.vim /usr/share/vim/vim74/syntax/

Antwoord 7, autoriteit 6%

Om welke reden dan ook buiten mijn eigen beslissing te maken, we kregen Golang geïnstalleerd op onze dev VMs door Debian pakketten. Deze bijzondere verdeling van vim komt niet met een van de goodies voor vim voor zover ik in staat om rond te onderscheiden van een zoektocht naar het was. Anyways, heb ik besloten om de vundle route te gaan om snel te kunnen implementeren van de goodies om al deze dev VM’s. Je kan waarschijnlijk werkt deze methode in pop of iets als je wilt, hebben we niet al te doen. Anyways, hier is wat ik deed:

Stap 1: Installeer vundle:
https://github.com/gmarik/vundle

Stap 2: zet deze lijn in uw vimrc (Het is van hier, natuurlijk: https: // github.com/jnwhiteh/vim-golang ) en voer vim vanaf de opdrachtregel zoals vim +BundleInstall +qallof vanuit vim met :BundleInstall

Bundle 'jnwhiteh/vim-golang'

Stap 3: Bewaar deze kleine bash script dat ik opgezweept als govim.sh of wat dan ook, chmod +x govim.sh, en voer het uit zoals ./govim.sh

Script als volgt:

#!/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/

Kachen! Je hebt nu alle goodies geïnstalleerd, en iemand corrigeert me als ik het mis heb, maar misschien meer dan wat bij de officiële Golang-distributie wordt geleverd. Ik weet hier ook niets van omdat ik het nog niet heb geprobeerd, maar ik denk dat het runtimepath/rtp wordt belazerd als je Vundle toch met de andere antwoorden hier gebruikt.


Antwoord 8, autoriteit 6%

Het zou zo eenvoudig moeten zijn als 1, 2, 3 :

  1. Download het bestand vim.goen plaats in ~/.vim/syntaxonder de naam go.vim(maak de directory syntaxaan als je die nog niet hebt).

  2. Als je het bestand ~/.vim/ftdetect/go.vimnog niet hebt, maak het dan aan (en de map indien nodig).

  3. Voeg in .vim/ftdetect/go.vimde volgende regel toe: au BufRead,BufNewFile *.go set filetype=go


Antwoord 9, autoriteit 5%

Deze paginazegt dat:

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

Het werkte voor mij, alleen vond ik eerst de map /misc/vim/go.vim niet. Dus ik kopieerde de bestanden van een andere computer die go on /usr/local/go/… had geïnstalleerd.


Antwoord 10

Dit is wat voor mij werkte in MAC

let g:tagbar_type_go = {
        \ 'ctagstype' : 'go',
        \ 'kinds'     : [
                \ 'p:package',
                \ 'i:imports:1',
                \ 'c:constants',
                \ 'v:variables',
                \ 't:types',
                \ 'n:interfaces',
                \ 'w:fields',
                \ 'e:embedded',
                \ 'm:methods',
                \ 'r:constructor',
                \ 'f:functions'
        \ ],
        \ 'sro' : '.',
        \ 'kind2scope' : {
                \ 't' : 'ctype',
                \ 'n' : 'ntype'
        \ },
        \ 'scope2kind' : {
                \ 'ctype' : 't',
                \ 'ntype' : 'n'
        \ },
        \ 'ctagsbin'  : 'gotags',
        \ 'ctagsargs' : '-sort -silent'
\ }
let g:go_highlight_structs = 1
let g:go_highlight_methods = 1
let g:go_highlight_functions = 1
let g:go_highlight_operators = 1
let g:go_highlight_build_constraints = 1
syntax on
  • Installeer gotags – b.v. brew install gotags
  • Ctags genereren – bijv. gorags -R. > ./tags
  • Vim openen vanuit de nieuwe shell

Antwoord 11

Blijkbaar waren de bovenstaande aanwijzingen enigszins dubbelzinnig.

~/.vim/syntax/go.vimmoet dezelfde inhoud hebben als ~/.vim/ftdetect/go.vim

alleen ~/.vim/ftdetect/go.vimmoet worden toegevoegd met au BufRead,BufNewFile *.go set filetype=go.

Als je het letterlijk neemt, vertellen de instructies je dat je een bestand ~/.vim/ftdetect/go.vimmoet maken met alleen

        au BufRead,BufNewFile *.go set filetype=go

Ik veronderstel dat daar contextuele kennis zou moeten beginnen. Alleen had ik dit nog nooit eerder gedaan en had ik niet zo’n context. Bedankt allemaal!

Other episodes