为VIM添加GoLang语法高亮显示

roc*_*tas 56 vim go vim-plugin vim-syntax-highlighting

我正在尝试使用此处提供的资源和方向向ubuntu上的VIM添加Go语言语法高亮显示http://go-lang.cat-v.org/text-editors/vim/.

Go附带一个go.vim包含VIM语法设置的文件,上面的页面提供了以下说明

将$ GOROOT/misc/vim/syntax/go.vim放在〜/ .vim/syntax /中,并将以下内容放在〜/ .vim/ftdetect/go.vim中:

au BufRead,BufNewFile *.go set filetype=go 
Run Code Online (Sandbox Code Playgroud)

这与我在别处看到的自定义vim语法的过程大致相同(Ubuntu 12.10上的Vim 7.3在任何地方都没有'ftplugin'目录,并且https://github.com/jnwhiteh/vim-golang/blob /master/readme.txt)

所以当我创建目录时,我认为我正在做正确的事:
〜/ .vim
~/.vim/syntax
~/.vim/ftdetect

并按照上述说明添加

go.vim到〜/ .vim/syntax /并创建一个文件go.vim,在〜/ .vim/ftdetect /中包含

au BufRead,BufNewFile *.go set filetype=go
Run Code Online (Sandbox Code Playgroud)

然而,似乎没有出现语法突出显示.我是否需要做些什么来强制VIM查看这些新的设置文件?

pet*_*rSO 62

更新:

去1.4发行说明

杂记

标准存储库的顶级misc目录,用于包含对编辑器和IDE的Go支持:插件,初始化脚本等.维护这些变得非常耗时并且需要外部帮助,因为列出的许多编辑器并未被核心团队的成员使用.它还要求我们决定哪个插件最适合给定的编辑器,即使对于我们不使用的编辑器也是如此.Go社区更适合管理这些信息.因此,在Go 1.4中,此支持已从存储库中删除.相反,有一个策划的,信息丰富的列表,列出维基页面上可用的内容.


标准的Go发行版包括Vim的Go文件go/misc/vim/.该目录包含一个readme.txt包含安装说明的文件.

readme.txt

Go(http://golang.org)的Vim插件

要使用所有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
Run Code Online (Sandbox Code Playgroud)

如果要选择较少的插件,请使用此文件其余部分中的说明.

<< .. SNIP .. >>

  • @CharlieParker我发现$ GOROOT在安装ubuntu之后没有定义(通过apt-get)所以我手动将它添加到我的.bashrc文件中(`export GOROOT ="/ usr/lib/go"`) - 另外我必须从https://code.google.com/p/go/wiki/Downloads?tm=2下载tar.gz并将`misc`文件夹解压缩到位(`/ usr/lib/go/misc/`)因为在通过ubuntu安装时没有这样做.参考:https://groups.google.com/forum/#!topic/golang-nuts/zQhCYp0BZp8 (4认同)
  • 我不确定是否有其他人有这个问题,但是,我尝试在我的.vimrc中插入这些行,但它不起作用.我试着回应$ GOROOT,一条空行出来了.$ GOROOT假设的路径是什么?它应该是一些目录,但我不确定为什么我的内容没有任何内容,你遇到过这个问题吗? (3认同)
  • 请参阅下面的答案,/ misc/vim已被弃用,您应该使用vim-go(或其他选项). (2认同)

Tho*_*mas 40

在Debian上,我想在ubuntu上是一样的,你只需:

sudo apt-get install vim-gocomplete gocode vim-syntax-go
vim-addon-manager install go-syntax
vim-addon-manager install gocode
Run Code Online (Sandbox Code Playgroud)

  • 就像ubuntu 14:04上的魅力一样.谢谢 (3认同)

non*_*one 21

你可以将这些行添加到你的~/.vimrc:

set rtp+=$GOROOT/misc/vim
filetype plugin indent on
syntax on
Run Code Online (Sandbox Code Playgroud)

编辑这假定filetype plugin indent off在这些行之前(即.vimrc文件的开头)并且如果不是则可能导致问题.有关更安全的版本,请参阅下面的@ peterSO答案.

  • 截至2015年1月(可能更早),`vim`目录已从`$ GOROOT/misc /`中删除. (11认同)
  • 我不确定是否有其他人有这个问题,但是,我尝试在我的.vimrc中插入这些行,但它不起作用.我试着回应$ GOROOT,一条空行出来了.$ GOROOT假设的路径是什么?它应该是一些目录,但我不确定为什么我的内容没有任何内容,你遇到过这个问题吗? (3认同)
  • @ charlie-parker:你是怎么安装去的?我最近通过`apt-get install golang`将它安装在Ubuntu 12.04上.似乎/ misc/vim未包含在随后安装的软件包中.解决方案是使用[vim-golang](https://github.com/jnwhiteh/vim-golang)存储库(最好与[pathogen](https://github.com/tpope/vim-)一起使用.病原)). (2认同)

小智 20

要获得最佳语法高亮,请尝试https://github.com/fatih/vim-go

这是一个新项目,它整合了许多vim插件并添加了许多功能.从自述文件:

  • 改进的语法突出显示,例如函数,运算符,方法..
  • 通过gocode自动完成支持
  • 保存时更好的gofmt,保持光标位置,不会破坏撤消历史记录
  • 使用godef转到符号/声明
  • 通过goimports自动导入包
  • 编译并构建您的包,使用go install进行安装
  • 快速运行您当前的文件/文件
  • 运行go test并在quickfix窗口中查看任何错误
  • 使用golint提示您的代码
  • 运行你的代码去审查以捕获静态错误.
  • oracle的高级源分析工具
  • 列出所有源文件和依赖项
  • 检查errcheck是否存在未经检查的错误.
  • 集成和改进的片段.支持ultisnips或neosnippet
  • 将您当前的代码分享到play.golang.org

  • [这个项目是日落](https://arslan.io/2018/10/09/taking-an-indefinite-sabbatical-from-my-projects/) (2认同)

HVN*_*ing 9

2015年1月25日

请参阅https://github.com/golang/go/wiki/IDEsAndTextEditorPlugins,因为现在删除了Go repo中的所有编辑器和shell支持(https://codereview.appspot.com/105470043)


pdp*_*pdp 5

我没有找到有关为 CentOS 7 打开 vim 语法高亮显示的说明。已经测试了随后的说明以在 CentOS 7.3.1611 上工作。首先,在您的主目录中创建以下目录:

$ mkdir ~/.vim/ftdetect/
Run Code Online (Sandbox Code Playgroud)

然后,go.vim在上面的目录中创建一个名为的文件,内容如下:

au BufRead,BufNewFile *.go set filetype=go
Run Code Online (Sandbox Code Playgroud)

下载 Go 的语法定义文件:vim.go。将其传输到正确的系统范围目录,以便多个用户可以共享:

$ sudo mv -i go.vim /usr/share/vim/vim74/syntax/
Run Code Online (Sandbox Code Playgroud)