Добавить подсветку синтаксиса GoLang для VIM



Я пытаюсь добавить подсветку синтаксиса языка Go в VIM на ubuntu с ресурсами и направлением, указанными здесь http://go-lang.cat-v.org/text-editors/vim/.



Go поставляется с go.vim файл, который содержит параметры синтаксиса для VIM и выше страница предлагает следующие инструкции



поместите $GOROOT / misc/vim/syntax / go.ВИМ Ин ~/.vim / синтаксис/ и поместите следующее в~/.vim/ftdetect / go.ВИМ:



au BufRead,BufNewFile *.go set filetype=go 


Это больше или меньше той же самой процедуры настройки синтаксиса vim, которую я видел в другом месте
(Vim 7.3 на Ubuntu 12.10 нигде не имеет каталога' ftplugin ' и https://github.com/jnwhiteh/vim-golang/blob/master/readme.txt)



поэтому я думаю, что я делаю правильные вещи, когда я создаю каталоги:

~/.ВИМ

~/.ВИМ/синтаксис

~/.vim / ftdetect



и следуйте приведенным выше инструкциям, добавив



перейти.vim to~/.ВИМ/синтаксис/
и создаем файл, идем.ВИМ, в ~/.vim/ftdetect / который содержит



au BufRead,BufNewFile *.go set filetype=go


однако подсветка синтаксиса, похоже, не происходит. Есть ли что-то, что мне нужно сделать, чтобы заставить VIM посмотреть эти новые файлы настроек?

1059   9  

9 ответов:

вы можете просто добавить эти строки в свой ~/.vimrc:

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

EDIT предполагается filetype plugin indent off перед этими строками (т. е. начало .vimrc file) и может вызвать проблемы, если это не так. См. ответ @peterSO ниже для более безопасной версии.

обновление:

Перейти 1.4 Примечания К Выпуску

сборник

каталог стандартного репозитория верхнего уровня misc, используемый для хранения Go поддержка редакторов и интегрированных сред разработки, Плагины, инициализации сценарии и так далее. Поддержание их становилось трудоемким и необходима внешняя помощь, потому что многие из перечисленных редакторов не использовались членами основной команды. Это также потребовало от нас принятия решений о том, какой плагин лучше всего подходит для данного редактора, даже для редакторов мы делаем не использовать. Сообщество Go в целом гораздо лучше подходит для управления этой информацией. Таким образом, в Go 1.4 эта поддержка была удалена хранилище. Вместо этого есть кураторский, информативный список что доступно на вики-страницы.


стандартный дистрибутив Go включает в себя файлы Go для Vim в go/misc/vim/. Этот каталог содержит что содержит инструкции по установке.

readme.txt

Vim плагины для Go (http://golang.org)

чтобы использовать все плагины Vim, добавьте эти строки в свой $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

если вы хотите выбрать меньше плагинов, используйте инструкции в остальных из этого файла.

>

на Debian, я полагаю, это то же самое на ubuntu, вы просто :

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

для лучшей подсветки синтаксиса попробуйте https://github.com/fatih/vim-go

Это новый проект, который объединяет множество плагинов vim и добавляет множество функций. Из readme:

  • улучшена подсветка синтаксиса, таких как функции, операторы, методы..
  • поддержка автоматического завершения через gocode
  • лучше gofmt при сохранении, сохраняет положение курсора и не нарушает историю отмены
  • перейти к символу / объявлению с годефом
  • автоматический импорт пакетов через goimports
  • скомпилируйте и создайте свой пакет, установите его с помощью go install
  • перейти быстро запустить текущий файл / файлы
  • запустить go test и увидеть любые ошибки в окне quickfix
  • Линт ваш код с golint
  • Запустите свой код через go vet, чтобы поймать статические ошибки.
  • расширенный инструмент анализа источников с oracle
  • Список всех исходных файлов и зависимости
  • проверка с помощью errcheck для непроверенных ошибок.
  • интегрированные и усовершенствованные фрагменты. Поддерживает ultisnips или neosnippet
  • поделитесь своим текущим кодом play.golang.org

25 / Jan / 2015

пожалуйста, смотрите https://github.com/golang/go/wiki/IDEsAndTextEditorPlugins как теперь все редактор и поддержка оболочки в Go repo удаляется (https://codereview.appspot.com/105470043)

по какой-то причине, помимо моего собственного принятия решений, мы установили Golang на наши виртуальные машины dev с помощью пакетов Debian. Это конкретное распределение vim не приходит ни с одним из лакомств для vim, насколько я мог судить из поиска вокруг него. В любом случае, я решил пойти по маршруту vundle, чтобы быстро развернуть лакомства для всех этих виртуальных машин dev. Возможно, вы могли бы использовать этот метод в марионетке или что-то еще, если хотите, мы этого не делали. В любом случае, вот что я сделал:

Шаг 1: Установите vundle: https://github.com/gmarik/vundle

Шаг 2: поместите эту строку в свой .vimrc (это отсюда, конечно:https://github.com/jnwhiteh/vim-golang ), а затем запустить vim из командной строки, как vim +BundleInstall +qall или изнутри vim с :BundleInstall

Bundle 'jnwhiteh/vim-golang'

Шаг 3: Сохраните этот маленький скрипт bash, который я взбил как govim.sh или еще что-нибудь,chmod +x govim.sh, и запустить его как ./govim.sh

скрипт следует:

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

прекрасна! Теперь у вас есть все лакомства, и кто-то поправит меня, если я ошибаюсь в этом, но, возможно, больше, чем то, что поставляется с официальным дистрибутивом Golang. Я не знаю об этом либо еще не пробовал, но я думаю, что runtimepath/rtp получает clobbered, если вы используете Vundle с другими ответами здесь в любом случае.

этой страница говорит, что:

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

это сработало для меня, только я не нашел /misc/vim/go.сначала каталог vim. Поэтому я скопировал файлы с другого компьютера, который установил go on /usr/local/go/...

Я не нашел инструкций по включению подсветки синтаксиса vim для CentOS 7. Протестировали следующие инструкции для работы на CentOS 7.3.1611. Во-первых, создайте следующий каталог в вашем домашнем каталоге:

$ mkdir ~/.vim/ftdetect/

затем создайте файл с именем, go.vim внутри указанного выше каталога с содержимым:

au BufRead,BufNewFile *.go set filetype=go

загрузите файл определения синтаксиса для Go:vim.иди. Перенесите его в правый общесистемный каталог, чтобы несколько пользователей могли поделиться:

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

оказывается, направления выше были немного неоднозначными.

~/.vim/syntax/go.vim должно иметь то же содержимое, что и ~/.vim/ftdetect/go.vim

только ~/.vim/ftdetect/go.vim должны быть дополнены au BufRead,BufNewFile *.go set filetype=go.

если понимать буквально, инструкции говорят вам создать файл ~/.vim/ftdetect/go.vim содержащие только

         au BufRead,BufNewFile *.go set filetype=go

Я предполагаю, что именно там контекстное знание должно вступить в силу. Только я никогда не делал этого раньше и не было такого контекста. Спасибо всем!

Comments

    Ничего не найдено.