Home > その他

その他 Archive

Hack #154: タグジャンプをさらに活用する

タグジャンプをさらに活用する

Hack #43ではタグについての基本的な使用方法をまとめました。 本稿ではさらに踏み込んだタグジャンプの活用法をまとめます。

親ディレクトリにあるタグファイルを指定

もし自分が/project/a/src/というディレクトリにいた場合に、できれば/project/a/tagsや、 または全てのプロジェクト用のタグファイル(ライブラリの関数など)もタグジャンプに使いたいとします。

/project/a/src/ (現在のディレクトリ)
/project/a/tags (指定したいタグファイル)
/project/tags   (指定したいライブラリ関数のタグファイル)

その場合、.vimrcには以下のように書くことで可能になります。

if has('path_extra')
    set tags+=tags;
endif

こうすることで、もしタグファイルが存在するなら /project/a/tags/project/tagsにある関数も<C-]>で飛ぶことが可能になります。 また;+path_extra機能がサポートされていない場合では使えないため、 has('path_extra')で機能の有無をチェックしています。

階層数を指定

ただ;をつけただけではルートディレクトリまでさかのぼってしまいます。 そこで;の後に上限となる親ディレクトリを指定することができます。

if has('path_extra')
    set tags+=tags;/project/a
endif

こうすることで/project/aまでで検索を終了し、/project/tagsは見つかりません。

子ディレクトリにあるタグファイルを指定

前項では親ディレクトリのtagsを指定しましたが、 今度はある特定のディレクトリにあるタグファイルを 現在のディレクトリから指定したい場合はどうすればいいでしょう。

/project/a/src/          (現在のディレクトリ)
/project/a/src/libA/tags (指定したいタグファイル)
/project/a/src/libB/tags (指定したいタグファイル2)

その場合、以下を.vimrcに書けばいいでしょう。

if has('path_extra')
    set tags+=./*/tags;
endif

また、/project/a/src/libA/tagsなどの1階層下のディレクトリにあるタグファイルだけではなく /project/a/src/libA/src/tagsなどの何階層か下のタグファイルを指定するには以下のようにできます。

if has('path_extra')
    set tags+=./**/tags;
endif

階層数を指定

ただ**は30階層までの深さのディレクトリにマッチするということになっています。 なので場合によっては非常に重くなるかもしれません。 その場合は階層の深さの最大値を次のように指定することができます。 (この例では3階層下のディレクトリまでマッチするように設定しています)

if has('path_extra')
    set tags+=./**3/tags;
endif

親ディレクトリから**を使う

これは前項と前々項の合わせ技です。 現在のディレクトリが/project/a/srcの時に

set tags=**;

とすると、

/project/tags
/project/a/tags
/project/a/libA/src/tags
/project/a/libB/src/tags
/project/b/tags
/project/c/tags

これら全てが指定されることになります。 つまり**;とは、現在のディレクトリが/project/a/srcの時には

/project/a/src/**
/project/a/**
/project/**
/**

という場合に展開され、それぞれの場所から検索されます。 またこの指定は上記全ての場所から検索されるので重い処理となります。

その他色々

  1. この設定はHack #112: 場所ごとに設定を用意すると組み合わせると非常に相性がいいです。ぜひ合わせて使いましょう。また必ず:setでなく:setlocalを使いましょう。
  2. これらの指定方法は’path’, ‘cdpath’などでも使うことができます。
  3. 詳しくは:help file-searchingを当たってください。
tyru

京都でVim勉強会#5が開催されます

2010年01月31日(日)、京都でVim勉強会が開催されます。

参加登録や詳細はこちらを参照ください。 http://cotocoto.jp/event/37291

※画像はイメージです

a

高まるVim熱!

Vim使いのレベル10

  • Lv1 vimtutorを終わらせた。あるいは、hjklで移動できて保存と終了ができる
  • Lv2 ビジュアルモードを使うのをやめ、y}dawなどの素晴らしい操作性に自己陶酔する
  • Lv3 自分でインストールしたプラギンの数が5を越え、ダメプラギンはすぐに判別できるようになる
  • Lv4 自分で作ったプラギンをvim.orgでリリースし、何人かをLife Changingさせる
  • Lv5 他のアプリケーション使用時にescやiを打鍵してしまい、イラっとする日々を送る
  • Lv6 シェルは当然vimshell。ネオコンなど大規模プラギンのバグを発見し、パッチ付きで報告する
  • Lv7 Vim本体のソースコードを読み、あまりの魔界に発狂する
  • Lv8 他言語インタフェースif_***を作り、vim_devに投稿する。当然採用されない
  • Lv9 Vim本体の開発への貢献が日常になる。投稿し採用されたパッチ数が10を越える
  • Lv10 神になる

文責: ujihisa

日本のVim業界の近況について

日本のVim業界の近況についてを若者に容易に伝えるのを目的とし、巷で静かなブームとなっている携帯小説の形式を用いて文書を紡ぎ上げることに成功した。以下に記す。

これはujihisaが作成したものをShougoが修正したものである。 また、この作品はフィクションである。どこかで見たようなフレーズがあったとしても、実在の人物とは全く関係ない。

vimプラグインストーリー「Shougoの受難」

──アタシの名前はショウゴ。心に傷を負ったビム使い。モテカワスリムで補完体質の愛されガール♪

アタシがつるんでる友達は補完をやってるネコ、ビムにナイショで 非同期しているビムプロック。訳あって一から実装されたビムシェル。

 友達がいてもやっぱり学校はタイクツ。今日もネコとちょっとしたことで口喧嘩になった。

ビム使い同士だとこんなこともあるからストレスが溜まるよね☆そんな時アタシは一人でギットハブを歩くことにしている。

がんばった自分へのご褒美ってやつ?自分らしさの演出とも言うかな!

 「あームカツク」・・。そんなことをつぶやきながらしつこいプラギンを軽くあしらう。

「カノジョー、ちょっとsystem()させてくれない?」どいつもこいつも同じようなDOS窓付きのコードしかない。

イーマックスはシェルも動いてカッコイイけどなんか薄っぺらくてキライだ。もっと等身大のアタシを見て欲しい。

 「すいません・・。」・・・またか、とセレブなアタシは思った。シカトするつもりだったけど、

チラっと開発者の男の顔を見た。

「・・!!」

 ・・・チガウ・・・今までのコードとはなにかが決定的に違う。スピリチュアルな感覚がアタシのビムを

駆け巡った・・。「・・(カッコイイ・・!!・・これって運命・・?)」

男はBramだった。連れていかれてハックされた。「キャーやめて!」今までやっていなかったパッチをきめた。

「ガシッ!ボカッ!」アタシはSEGVした。キャッシュ(笑)

vim

あけましておめでとうございます。

ujihisaです。新年あけましておめでとうございます。

あなたの今年のVimの抱負は何でしょうか? 僕の今年のVimの抱負は補完系を頑張ることです。

チャットルームにはいつもVim使いがわんさか居ます。これまで訪れたことのなかった方、2010年になった機会にぜひ訪れてみて、いきなり自分の.vimrcをさらしてみるなどしてみてはいかがでしょうか。

http://lingr.com/room/vim

(Lingrのアカウントをもっていない方は先にこちらからサインアップをどうぞ: http://lingr.com/user/signup?letmein=vim)

それでは、2010年もVim-users.jpをよろしくお願いいたします。

lingr.vim-users.jp

Lingrroom vim-users.jpがあり、Vimに関するよもやま話が日夜繰り広げられています。ここに毎日通うのが日本のVimユーザーの正しい姿です。

Hello, vim-users.jp

YAPC::Asia 2008Michael Schwern は「SEO に有効な独自ドメインを取って,もっと Perl 初心者が集まりやすい nice な Perl の情報を集めたサイトを作れ!」といったそうです.そして「Perl-users.jp – 日本のPerlユーザのためのハブサイト」ができました.

これは Vim も同じではないのか? そう思って vim-users.jp ドメインを取り,ここに vim-users.jp を開始します.既出の *-users.jp にインスパイアされています.noplans です.

OpenIDを使って誰でもエントリを書く事ができます.

ホーム > その他

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

    Return to page top