godoctor.vim
March 18, 2018 ยท View on GitHub
Vim plugin for the godoctor. Tested with vim 7.3 and 7.4.
Install
godoctor.vim follows the standard runtime path structure, so we highly recommend to use
a common and well known plugin manager to install godoctor.vim. filetype plugin indent on must also be set (add this to your ~/.vimrc).
- Pathogen
git clone https://github.com/godoctor/godoctor.vim.git ~/.vim/bundle/godoctor.vim
- vim-plug
Plug 'godoctor/godoctor.vim'
- NeoBundle
NeoBundle 'godoctor/godoctor.vim'
- Vundle
Plugin 'godoctor/godoctor.vim'
- manual
-
git clone https://github.com/godoctor/godoctor.vim ~/.vim/godoctor.vim -
Add these lines to ~/.vimrc
if exists("g:did_load_filetypes") filetype off filetype plugin indent off endif set rtp+=~/.vim/godoctor.vim filetype plugin indent on syntax on
-
If godoctor is not already installed and in your $PATH, just type
:GoDoctorInstall. This will install it to $GOPATH/bin, which will also need
to be in your $PATH, which assumes you have $GOPATH set.
git must be installed for :GoDoctorInstall to work.
We took express care not to conflict with anything in
https://github.com/fatih/vim-go. This means (vim-go note aside) that it is
safe to have vim-go installed alongside godoctor.vim. Notably, vim-go has :GoRename
and :GoRefactor where we have :Rename and :Refactor when editing a .go file.
Getting started
With cursor in thing to rename:
:Rename <newname>
Highlighting block to extract:
:Refactor extract newfunc
Setting scope to git root
The default scope will be $PWD, if none is set explicitly with
g:doctor_scope. If you would prefer to use the git root scope on every
refactoring, you may do the following:
Add the following to your .vimrc:
function! s:find_git_root()
return system('git rev-parse --show-toplevel 2> /dev/null')[:-2]
endfunction
function! DoctorScopeFunc()
let l:gp = $GOPATH
if l:gp == ""
return ""
endif
let l:gp = l:gp."/src/"
let l:gr = s:find_git_root()
return substitute(l:gr, l:gp, "", "")
endfunction