2

.h c++ ファイルの ifdef コマンドを自動化するために vim でマッピングを作成するにはどうすればよいですか? 基本的に、.h や .hpp などで動作する以下を作成するマッピングが必要です。

#ifndef <filename>_<extension>__
#define <filename>_<extension>__

#endif  // <filename>_<extension>__
4

2 に答える 2

1

また、この種のことを行うために略語を使用することもできます。読みやすくするための小さなヘルパー関数の例

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>
于 2013-09-30T17:53:14.100 に答える
0

.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
于 2013-09-27T04:28:29.963 に答える