Stack Overflow Asked by rocketas on September 1, 2020
I’m trying to add Go language syntax highlighting to VIM on ubuntu with resources and direction supplied here http://go-lang.cat-v.org/text-editors/vim/.
Go comes with a go.vim
file that contains syntax settings for VIM and the above page offers the following instructions
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
This is more or less the same vein of procedure for customizing vim syntax I’ve seen elsewhere
(Vim 7.3 on Ubuntu 12.10 doesn't have 'ftplugin' directory anywhere and https://github.com/jnwhiteh/vim-golang/blob/master/readme.txt)
So I think I’m doing the right thing when I create directories:
~/.vim
~/.vim/syntax
~/.vim/ftdetect
and follow the above instructions by adding
go.vim to ~/.vim/syntax/
and creating a file, go.vim, in ~/.vim/ftdetect/ which contains
au BufRead,BufNewFile *.go set filetype=go
Yet syntax highlighting does not seem to occur. Is there something I need to do to force VIM to look at these new settings files?
you can just add these lines to your ~/.vimrc
:
set rtp+=$GOROOT/misc/vim
filetype plugin indent on
syntax on
EDIT This assumes filetype plugin indent off
before these lines (i.e. beginning of .vimrc
file) and may cause problems if it's not. See @peterSO's answer below for the safer version.
Correct answer by none on September 1, 2020
This is what worked for me 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
Answered by pr-pal on September 1, 2020
It should be easy as 1, 2, 3 :
Download the file vim.go and place in in ~/.vim/syntax
under the name go.vim
(create the directory syntax
if you don't already have it).
If you don't already have the file ~/.vim/ftdetect/go.vim
, create it (and the folder if necessary).
In .vim/ftdetect/go.vim
, add the following line : au BufRead,BufNewFile *.go set filetype=go
Answered by tomfl on September 1, 2020
I did not find instructions on turning on vim syntax highlighting for CentOS 7. Have tested the ensuing instructions to work on CentOS 7.3.1611. First, create the following directory in your home directory:
$ mkdir ~/.vim/ftdetect/
Then, create a file named, go.vim
inside the above directory with the contents:
au BufRead,BufNewFile *.go set filetype=go
Download the syntax definition file for Go: vim.go. Transfer it to the right system-wide directory so that multiple users can share:
$ sudo mv -i go.vim /usr/share/vim/vim74/syntax/
Answered by pdp on September 1, 2020
on 25/Jan/2015
Please see https://github.com/golang/go/wiki/IDEsAndTextEditorPlugins as now all editor & shell support in Go repo is removed (https://codereview.appspot.com/105470043)
Answered by HVNSweeting on September 1, 2020
On Debian, I suppose it's the same on ubuntu, you just :
sudo apt-get install vim-gocomplete gocode vim-syntax-go
vim-addon-manager install go-syntax
vim-addon-manager install gocode
Answered by Thomas on September 1, 2020
For the best syntax highlighting try https://github.com/fatih/vim-go
It's a new project that consolidates many vim plugins and adds a lot of features. From the readme:
Answered by Greg Ingelmo on September 1, 2020
This page says that:
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
It worked for me, only i did not find the /misc/vim/go.vim directory at first. So i copied the files from another computer that had installed go on /usr/local/go/...
Answered by Mattis Asp on September 1, 2020
For whatever reason outside of my own decision making, we got Golang installed on our dev VMs by Debian packages. This particular distribution of vim doesn't come with any of the goodies for vim as far as I was able to tell from a search around for it. Anyways, I decided to go the vundle route in order to rapidly deploy the goodies to all these dev VMs. You could probably work this method into puppet or something if you'd like, we didn't do that though. Anyways, here's what I did:
Step 1: Install vundle: https://github.com/gmarik/vundle
Step 2: put this line in your .vimrc (It's from here, of course: https://github.com/jnwhiteh/vim-golang ), and then run vim from the command line like vim +BundleInstall +qall
or from within vim with :BundleInstall
Bundle 'jnwhiteh/vim-golang'
Step 3: Save this little bash script I whipped up as govim.sh or whatever, chmod +x govim.sh
, and run it like ./govim.sh
Script as follows:
#!/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! You now have all the goodies installed, and someone correct me if I'm wrong on this but perhaps more than what comes with the official Golang distribution. I don't know about this either having not tried it yet, but I think that the runtimepath/rtp gets clobbered if you use Vundle with the other answers here anyways.
Answered by Dmitri DB on September 1, 2020
UPDATE:
The standard repository's top-level misc directory used to contain Go support for editors and IDEs: plugins, initialization scripts and so on. Maintaining these was becoming time-consuming and needed external help because many of the editors listed were not used by members of the core team. It also required us to make decisions about which plugin was best for a given editor, even for editors we do not use. The Go community at large is much better suited to managing this information. In Go 1.4, therefore, this support has been removed from the repository. Instead, there is a curated, informative list of what's available on a wiki page.
The standard Go distribution includes Go files for Vim in go/misc/vim/
. This directory contains a readme.txt
file which contains installation instructions.
Vim plugins for Go (
http://golang.org
)To use all the Vim plugins, add these lines to your
$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
If you want to select fewer plugins, use the instructions in the rest of this file.
<<..SNIP..>>
Answered by peterSO on September 1, 2020
Turns out the directions above were slightly ambiguous.
~/.vim/syntax/go.vim
should have the same contents as ~/.vim/ftdetect/go.vim
only ~/.vim/ftdetect/go.vim
must be appended with au BufRead,BufNewFile *.go set filetype=go
.
If taken literally, the directions tell you to create a file ~/.vim/ftdetect/go.vim
containing only
au BufRead,BufNewFile *.go set filetype=go
I suppose that's where contextual knowledge should kick in. Only I'd never done this before and had no such context. Thanks all!
Answered by rocketas on September 1, 2020
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP