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

現在なんという関数の中にいるか表示する

メッセージ

Vim6 part3 より

235 名前:名無しさん@お腹いっぱい。投稿日: 02/05/10 14:53

   cのソースを読んでいて、ジャンプを繰り返しているうちに今カーソルがある行は、なんと
   いう関数の中なのかをスクロールせずに調べるコマンド等ありますか?
   一応、[[コマンドでジャンプして、その後c-oでモトの場所まで戻っているけど、なんだか
   億劫で。     

239 名前: mattn@Vim%Chalice 投稿日: 02/05/10 17:52

   >>238
   ctags.vim を取ってきて
   'コメント(私はF2で動かしたい)
   'autocmd CursorHold * if exists('generate_tags') | let &titlestring='%t%( %M%)%(
   (%{expand("%:~:.:h")})%)%( %a%)%='.GetTagName(line(".")) | endif
   nmap <F2> :echo "you are in ".GetTagName(line("."))."()"<cr>

   っていうのはどうでしょうか?
   # C の関数シンタックスは人それぞれなんで ctags を使うほかない
   # 気がします。

240 名前: KoRoN@Vim%Chalice ◆ALICEsdk 投稿日: 02/05/10 21:19

   >>235 簡易な方法なら次のマップでどうでしょ?。[fで表示。
   :nnoremap [f [[k:p<CR><C-O><C-O>
   # なんかありそうな気もするけど。   
nnoremap [f [[k:p<CR><C-O><C-O>

だと関数名のある行が長すぎるときなにも表示されなかったので

nnoremap [f [[k:let t=getline(".")<CR>``:echo t<CR>

のようにするといいかも。

関連スクリプト・Tips

cfname
かなり重い。
http://www.vim.org/scripts/script.php?script_id=1429

findfuncname.vim
開き括弧が第1桁以外にある場合や、行末にある場合にも対応している。
http://www.vim.org/scripts/script.php?script_id=1628

閉じ括弧が第1桁にあることが条件の方法。
http://www.vim.org/tips/tip.php?tip_id=1454


10:15:09 (水)};




トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-10-14 (火) 01:13:17 (1467d)