wake-up-neo.com

Fügen Sie die GoLang-Syntaxhervorhebung für hinzu VIM

Ich versuche, Go-Sprache-Syntaxhervorhebung zu VIM auf Ubuntu hinzuzufügen, wobei die Ressourcen und Anweisungen hier angegeben sind http://go-lang.cat-v.org/text-editors/vim/ .

Go verfügt über eine go.vim-Datei, die Syntaxeinstellungen für VIM enthält. Auf der obigen Seite finden Sie die folgenden Anweisungen

Platzieren Sie $ GOROOT/misc/vim/syntax/go.vim in ~/.vim/syntax/und geben Sie Folgendes in ~/.vim/ftdetect/go.vim ein:

au BufRead,BufNewFile *.go set filetype=go 

Dies ist mehr oder weniger dieselbe Prozedur für das Anpassen der vim-Syntax, die ich anderswo gesehen habe ( Vim 7.3 auf Ubuntu 12.10 hat nirgendwo das 'ftplugin'-Verzeichnis } und https://github.com/jnwhiteh/vim-golang/blob/master/readme.txt )

Ich glaube, ich mache das Richtige, wenn ich Verzeichnisse erstelle:
~/.vim
~/.vim/Syntax
~/.vim/ftdetect

und befolgen Sie die obigen Anweisungen, indem Sie hinzufügen 

go.vim zu ~/.vim/syntax / und erstellen einer Datei go.vim in ~/.vim/ftdetect/die enthält

au BufRead,BufNewFile *.go set filetype=go

Syntax-Highlighting scheint jedoch nicht aufzutreten. Gibt es etwas, das ich tun muss, um VIM diese neuen Einstellungsdateien anzusehen?

52
rocketas

sie können diese Zeilen einfach zu Ihrem ~/.vimrc hinzufügen:

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

EDITDies setzt voraus, dass filetype plugin indent off vor diesen Zeilen steht (d. h. Beginn der .vimrc-Datei) und kann Probleme verursachen, wenn dies nicht der Fall ist. Siehe unten die Antwort von @ peterSO für die sicherere Version.

18
none

AKTUALISIEREN:

Go 1.4 Versionshinweise

Sonstiges

Das Misc-Verzeichnis der obersten Ebene des Standard-Repositorys, in dem Go .__ enthalten ist. Unterstützung für Editoren und IDEs: Plugins, Initialisierung Skripte und so weiter. Diese zu pflegen wurde zeitaufwändig und benötigte externe Hilfe, da viele der aufgeführten Editoren nicht verwendet wurden von Mitgliedern des Kernteams. Wir mussten auch Entscheidungen treffen. welches Plugin für einen bestimmten Editor am besten war, auch für Editoren machen wir das nicht verwenden. Die Go-Community ist viel besser geeignet, um diese Informationen zu verwalten. In Go 1.4 wurde diese Unterstützung daher von .__ entfernt. das Repository. Stattdessen gibt es eine kuratierte, informative Liste von was auf einer wiki-Seite verfügbar ist .


Die Standard-Go-Distribution enthält Go-Dateien für Vim in go/misc/vim/. Dieses Verzeichnis enthält eine readme.txt-Datei, die Installationsanweisungen enthält. 

readme.txt

Vim-Plugins für Go (http://golang.org)

Um alle Vim-Plugins zu verwenden, fügen Sie diese Zeilen in Ihren $HOME/.vimrc ein.

" 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

Wenn Sie weniger Plugins auswählen möchten, verwenden Sie die Anweisungen im übrigen dieser Datei.

<< .. SNIP .. >>

61
peterSO

Unter Debian denke ich, dass es auf Ubuntu genauso ist, Sie nur:

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

Für die beste Syntax-Hervorhebung versuchen Sie https://github.com/fatih/vim-go

Es ist ein neues Projekt, das viele Vim-Plugins konsolidiert und viele Funktionen hinzufügt. Aus der Liesmich:

  • Verbesserte Syntax-Hervorhebung, z. B. Funktionen, Operatoren, Methoden.
  • Unterstützung für die automatische Vervollständigung über Gocode
  • Besser beim Speichern, behält die Cursorposition bei und bricht Ihre Undo-Historie nicht
  • Gehe zu Symbol/Deklaration mit Godef
  • Pakete automatisch über goimports importieren
  • Kompilieren Sie und bauen Sie Ihr Paket, installieren Sie es mit go install
  • gehen Sie schnell Ihre aktuellen Dateien aus
  • Starten Sie go test und sehen Sie alle Fehler im Quickfix-Fenster
  • Füllen Sie Ihren Code mit Golint
  • Führen Sie Ihren Code durch go go Tierarzt aus, um statische Fehler zu erkennen.
  • Erweitertes Source-Analyse-Tool mit Oracle
  • Listen Sie alle Quelldateien und Abhängigkeiten auf
  • Überprüfung mit errcheck auf ungeprüfte Fehler.
  • Integrierte und verbesserte Schnipsel. Unterstützt Ultisnips oder Neosnippet
  • Teilen Sie Ihren aktuellen Code an play.golang.org
18
Greg Ingelmo

am 25.01.2015

Siehe https://github.com/golang/go/wiki/IDEsAndTextEditorPlugins , da jetzt alle Editor- und Shell-Unterstützung in Go-Repo entfernt wird ( https://codereview.appspot.com/105470043 )

9
HVNSweeting

Unabhängig von meinen eigenen Entscheidungen haben wir Golang von Debian-Paketen auf den Dev-VMs installiert. Diese spezielle Verteilung von vim enthält keine der Goodies für vim, soweit ich es bei einer Suche nach ihm feststellen konnte. Wie auch immer, ich entschied mich für die Vundle-Route, um die Goodies schnell auf all diese Dev VMs bereitzustellen. Sie könnten diese Methode wahrscheinlich in eine Puppe umwandeln oder etwas, wenn Sie möchten, wir haben das aber nicht gemacht. Jedenfalls habe ich Folgendes getan:

Schritt 1: Installieren Sie vundle: https://github.com/gmarik/vundle

Schritt 2: Setzen Sie diese Zeile in Ihre .vimrc (natürlich von hier aus: https://github.com/jnwhiteh/vim-golang ) und führen Sie dann vim von der Befehlszeile aus wie vim +BundleInstall +qall oder von innen aus vim mit :BundleInstall

Bundle 'jnwhiteh/vim-golang'

Schritt 3: Speichern Sie dieses kleine Bash-Skript, das ich als govim.sh oder was auch immer chmod +x govim.sh aufgespielt habe, und führen Sie es wie ./govim.sh aus.

Skript wie folgt:

#!/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! Sie haben jetzt alle Goodies installiert, und jemand korrigiert mich, wenn ich dabei falsch liege, aber vielleicht mehr als das, was mit der offiziellen Golang-Distribution kommt. Ich weiß auch nicht, ob ich es noch nicht ausprobiert habe, aber ich denke, dass der runtimepath/rtp verstümmelt wird, wenn Sie Vundle mit den anderen Antworten hier verwenden.

3
Dmitri DB

Diese Seite sagt, dass:

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

Es hat für mich funktioniert, nur das Verzeichnis /misc/vim/go.vim konnte ich zunächst nicht finden. Also habe ich die Dateien von einem anderen Computer kopiert, der auf/usr/local/go/installiert war ...

3
Mattis Asp

Ich habe keine Anweisungen zum Aktivieren der Vim-Syntaxhervorhebung für CentOS 7 gefunden. Habe die folgenden Anweisungen getestet, um mit CentOS 7.3.1611 zu arbeiten. Erstellen Sie zunächst das folgende Verzeichnis in Ihrem Heimatverzeichnis:

$ mkdir ~/.vim/ftdetect/

Dann erstellen Sie eine Datei mit dem Namen go.vim im obigen Verzeichnis mit dem Inhalt:

au BufRead,BufNewFile *.go set filetype=go

Laden Sie die Syntaxdefinitionsdatei für Go: vim.go herunter. Übertragen Sie es in das richtige systemweite Verzeichnis, damit mehrere Benutzer es gemeinsam nutzen können:

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

Es sollte so einfach wie 1, 2, 3 sein:

  1. Laden Sie die Datei vim.go herunter und legen Sie sie in ~/.vim/syntax unter dem Namen vim.go ab (erstellen Sie das Verzeichnis syntax, falls Sie es noch nicht haben).

  2. Wenn Sie die Datei ~/.vim/ftdetect/go.vim noch nicht haben, erstellen Sie sie (und ggf. den Ordner).

  3. Fügen Sie in .vim/ftdetect/go.vim die folgende Zeile hinzu: au BufRead,BufNewFile *.go set filetype=go

0
tomfl