読者です 読者をやめる 読者になる 読者になる

vimでヘッダファイルとソースファイルを交互に開く

vim

C++のコードを書いている時デバッグ時にヘッダーとソースファイルを行き来したいときが多々ある。

そんな感じのことを実現してくれるプラグイン

mopp/next-alter.vim · GitHub

インストール

NeoBundleInstallがあれば、.vimrcに以下を書いて:NeoBundleInstall

NeoBundle 'mopp/next-alter.vim'

設定は.vimrcに以下を書くと、Space+noで画面の横半分に対応するヘッダないしソースファイルが表示される。キーバインドは好みなので適当に変更して良い。

"---------------------------------------------------------
" next-alter
"---------------------------------------------------------
"Prefix
nnoremap [NEXTALTER]  <Nop>
nmap <Space>n [NEXTALTER]

nmap [NEXTALTER]o <Plug>(next-alter-open)

" key is file extension, value is alternate file extension.
let g:next_alter#pair_extension = { 
            \ 'c'   : [ 'h' ],
            \ 'C'   : [ 'H' ],
            \ 'cc'  : [ 'h' ],
            \ 'CC'  : [ 'H', 'h'],
            \ 'cpp' : [ 'h', 'hpp' ],
            \ 'CPP' : [ 'H', 'HPP' ],
            \ 'cxx' : [ 'h', 'hpp' ],
            \ 'CXX' : [ 'H', 'HPP' ],
            \ 'h'   : [ 'c', 'cpp', 'cxx' ],
            \ 'H'   : [ 'C', 'CPP', 'CXX' ],
            \ 'hpp' : [ 'cpp', 'cxx'],
            \ 'HPP' : [ 'CPP', 'CXX'],
            \ }
" this list shows search directory to find alternate file.
let g:next_alter#search_dir = [ '.' , '..', './include', '../include' ]

" this is used when it opens alternate file buffer.
let g:next_alter#open_option = 'vertical topleft'

別タブとしてopenができるともっと便利だけど、そういう機能があるのかは良く分からない。

参考

もぷろぐ: Vim で .c/.cpp と.h/.hpp とかを相互に開くPluginをつくったじゃんよ

メモ

今までわざわざTerminalに戻って、makeを実行していたが、vim上で:makeで実行できることを知った。

実行後エラー箇所まで飛んでくれるので、今後はこっちを使っていこうと思った。