スパム対策として書込み時にID/PWを要求されますが、ローマ字で ほげ/ホゲ で書き込めるようになります。

[[FrontPage]]
#contents

*C/C++ 前後の関数へ移動(改良版) [#afebd6f0]
基本的に[ [ , ] ] と同じだが、1つ上が空行になっている行を先頭行とみなし、先頭行が画面最上になるようにして移動する。

 noremap <C-p> [[?^\s*$<CR>jz<CR>
 noremap <C-n> /^\s*$<CR>]]?^\s*$<CR>jz<CR>
 noremap <C-p> [[?^?s*$<CR>jz<CR>
 noremap <C-n> /^?s*$<CR>]]?^?s*$<CR>jz<CR>
このように連続して行う操作は、2キーのシーケンスより、CTRL+1文字にマップした方が使いやすいと思う。


*C/C++で関数を範囲選択 [#qe7e39a7]
 int
  foo(char mychar,
      int myint,
      double* myarray,
      int mask = DEFAULT)
 { //...
 } 
となっているとき,関数内のどこかにカーソル置いて実行すると,int から最後の } までを範囲選択してくれるマッピング。~
ただし int の上が空行になっている必要がある。
 nnoremap vf ][v[[?^\s*$<CR>
 nnoremap vf ][v[[?^?s*$<CR>

*for などのブロックを選択。 [#k9db8a50]
 nnoremap vb /{<CR>%v%0
for, if, while などがある行にカーソルを置いて、これを実行すると、そのブロックを選択する。~
実行後のカーソル位置が実行前と同じ行に来るようにしている。

* .c ←→ .h を切り替えるスクリプト [#z4fb5f3c]
Alternate Files quickly (.c --> .h etc)~
http://www.vim.org/scripts/script.php?script_id=31~
foo.c を編集中に :A すると対応する foo.h を開く。逆も同じ。~
:AS でウィンドウを分割して開く。:VS で垂直分割して開く。~

* .h 作成時に自動的に #ifndef 〜 #endif を挿入する [#zc12ebdd]

 au BufNewFile *.h call IncludeGuard()
 function! IncludeGuard()
    let fl = getline(1)
    if fl =~ "^#if"
        return
    endif
    let gatename = substitute(toupper(expand("%:t")), "\\.", "_", "g")
    let gatename = substitute(toupper(expand("%:t")), "??.", "_", "g")
    normal! gg
    execute "normal! i#ifndef " . gatename . "_INCLUDED"
    execute "normal! o#define " . gatename .  "_INCLUDED\<CR>\<CR>\<CR>\<CR>\<CR>"
    execute "normal! o#define " . gatename .  "_INCLUDED?<CR>?<CR>?<CR>?<CR>?<CR>"
    execute "normal! Go#endif   /* " . gatename . "_INCLUDED */"
    4
 endfunction 

* タグジャンプ色々 [#l4ad9f5a]
C-] でカーソル下のタグにジャンプしてくれるが、ジャンプ先を別ウィンドウで開くこともできる。
 :tag  タグ名    " C-] と同じ
 :ptag タグ名    " C-W } と同じ
                 " tag と同じ部分をスプリットして表示
                 " しかもカーソル位置は現在のまま
 :pc             " プレビューウィンドウを閉じる。C-W C-Z と同じ。
 C-W ]           " スプリットしてタグジャンプ
~
*Doxygen コメントのテンプレートを作成するスクリプト [#sdb3f141]
DoxygenToolkit.vim~
http://www.vim.org/scripts/script.php?script_id=987~
 int
   foo(char mychar,
       int myint,
       double* myarray,
       int mask = DEFAULT)
 { //...
 } 
となっているとき、1行目か2行目にカーソルを置いて:Doxすると~

 /**
 * @brief
 *
 * @param mychar
 * @param myint
 * @param myarray" *
 * @return
 **/ 
を挿入してくれる.~

* Objective-C [#v155b042]
~*.h の filetype を objc と見なす。
 :let objc_syntax_for_h = 1

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS