Home > Vim Hacks | Vim script > Hack #171: 編集している関数名を表示する

Hack #171: 編集している関数名を表示する

数あるエディタの中には現在編集中の関数名をステータスバーに表示させたりできるものがあります。
Vimでもできないでしょうか。

解決

current-func-info.vimを使います。
インストールしたあとstatuslineを次のように設定しましょう。

let &statusline = '[%{cfi#get_func_name()}()]'

こうすると現在編集中の関数名が

[func()]

のように表示されます。

cfi#get_func_name()は関数の外側にいる時は空文字を返すので
外側にいる時は「no function」と表示させたい場合は以下のようにします。

let &statusline = '%{cfi#get_func_name() == "" ? "no function" : "[" . cfi#get_func_name() . "()]"}'

これは少し面倒です。
cfi#format()というヘルパー関数を使うとこのように書けます。

let &statusline = '%{cfi#format("[%s()]", "no function")}'

current-func-infoは現在C, Perl, Ruby, Python, PHP, Vimスクリプトに対応しています。

ちなみに

statuslineは

set statusline=...

という風にセットすることもできますが

let &statusline = '...'

としたほうが空白を含む文字列をセットする時にエスケープする必要がなく便利です。

set statusline=this\ is\ my\ statusline

let &statusline = 'this is my statusline'

また

set statusline=%!...

のようにすることもできます。(:help 'statusline' 参照)

tyru
このエントリーをはてなブックマークに追加
はてなブックマーク - Hack #171: 編集している関数名を表示する
Share on Facebook
Post to Google Buzz
Bookmark this on Google Bookmarks
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip
Share on FriendFeed

Comments:2

nishigo245 10-11-10 (水) 14:40

version0.0.4からPHPにも対応したようです。

hatena.ne.jp/tyru/ 10-11-17 (水) 7:19

ありがとうございます。記事を更新し忘れていました。 ちなみに作者は私です :)

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://vim-users.jp/2010/09/hack171/trackback/
Listed below are links to weblogs that reference
Hack #171: 編集している関数名を表示する from Vim-users.jp

Home > Vim Hacks | Vim script > Hack #171: 編集している関数名を表示する

Search
Feeds
Links
  • 公式
  • 勉強会
  • 情報
  • コミュニティ
  • Meta
    Etc
    Creative Commons License
    This blog is licensed under a Creative Commons License.

    Return to page top