Добавить подсветку синтаксиса 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 посмотреть эти новые файлы настроек?
9 ответов:
вы можете просто добавить эти строки в свой
~/.vimrc:set rtp+=$GOROOT/misc/vim filetype plugin indent on syntax onEDIT предполагается
filetype plugin indent offперед этими строками (т. е. начало.vimrcfile) и может вызвать проблемы, если это не так. См. ответ @peterSO ниже для более безопасной версии.
обновление:
Перейти 1.4 Примечания К Выпуску
каталог стандартного репозитория верхнего уровня misc, используемый для хранения Go поддержка редакторов и интегрированных сред разработки, Плагины, инициализации сценарии и так далее. Поддержание их становилось трудоемким и необходима внешняя помощь, потому что многие из перечисленных редакторов не использовались членами основной команды. Это также потребовало от нас принятия решений о том, какой плагин лучше всего подходит для данного редактора, даже для редакторов мы делаем не использовать. Сообщество Go в целом гораздо лучше подходит для управления этой информацией. Таким образом, в Go 1.4 эта поддержка была удалена хранилище. Вместо этого есть кураторский, информативный список что доступно на вики-страницы.
стандартный дистрибутив Go включает в себя файлы Go для Vim в
go/misc/vim/. Этот каталог содержит что содержит инструкции по установке.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 с:BundleInstallBundle '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