.h c++ ファイルの ifdef コマンドを自動化するために vim でマッピングを作成するにはどうすればよいですか? 基本的に、.h や .hpp などで動作する以下を作成するマッピングが必要です。
#ifndef <filename>_<extension>__
#define <filename>_<extension>__
#endif // <filename>_<extension>__
また、この種のことを行うために略語を使用することもできます。読みやすくするための小さなヘルパー関数の例
function! InsertHeaderGuard()
let def = expand('%:r') . '_' . expand('%:e') . '__'
let guard = '#ifndef ' . def . "\n"
let guard .= '#define ' . def . "\n\n"
let guard .= '#endif // ' . def
return guard
endfunction
iabbrev _TEST <c-r>=InsertHeaderGuard()<cr>
.vimrc ファイルに次のように入力するだけです。.vimrc ファイルはホーム ディレクトリにある必要があります。これにより、探しているものが出力されます。これは、.h または .hpp ファイルを編集した後に使用でき、<f12>
キーを押すだけです。
nnoremap <f12> "%pF.r_A__<esc>I#ifndef <esc>gUwyypldwidefine <esc>yypldwiendif //<esc>O<esc>
inoremap <f12> <esc>"%pF.r_A__<esc>I#ifndef <esc>gUwyypldwidefine <esc>yypldwiendif //<esc>O<esc>i