You can use modern plugin managers to download the GN repo and manage the vim plugin:
Example config for vim-plug:
Plug 'https://gn.googlesource.com/gn', { 'rtp': 'misc/vim' }
Or, for Vundle users:
Plugin 'https://gn.googlesource.com/gn', { 'rtp': 'misc/vim' }
If you don't use a plugin manager or would prefer to manage the GN repo yourself, you can add this explicitly to rtp
in your .vimrc
:
set runtimepath+=/path/to/gn/misc/vim " ... filetype plugin indent on " or a similar command to turn on filetypes in vim
vim-codefmt supports the GN filetype natively. Add the following to your .vimrc
:
" Install vim-codefmt and its dependencies Plug 'google/vim-maktaba' Plug 'google/vim-codefmt' " Install this plugin: Plug 'https://gn.googlesource.com/gn', { 'rtp': 'misc/vim' } " Optional: configure vim-codefmt to autoformat upon saving the buffer. augroup CodeFmt autocmd! autocmd FileType gn AutoFormatBuffer gn " Other file types... augroup END
This will autoformat your files every time you save. If you prefer not to format files upon saving, vim-codefmt can format the buffer by calling :FormatCode
.
If you cannot include vim-codefmt, you can use the limited gn format
integration included in this plugin. Add the following to your .vimrc
:
" Replace <F1> with whichever hotkey you prefer:
nnoremap <silent> <F1> :pyxf <path-to-this-plugin>/gn-format.py<CR>