ホーム > vim > Vimでシステム開発 — Lookupfile Plugin

Vimでシステム開発 — Lookupfile Plugin

2009 年 5 月 17 日 コメントをどうぞ コメント

ファイルの開くについて、Vimは「:find」コマンドがありますが、あまり便利ではないと思います。ファイルが多い場合、検索が遅くなります。また、ファイルのフルネームを入力しなければならない、正規表現は使えないのです。

Vim標準のファイル・エクスプローラであるnetrwも紹介しました、netrwはフォルダ・エクスプロー時が便利です。ただし、すでに名前または名前の一部が分かっているファイルの場合、netrwは効率が高いと言えないでしょう。

ファイル名の一部を入力すれば、該当するファイル一覧を表示して、選択できるような機能がずっとほしかったのです。

ここで登場するのはlookupfileプラグインです。lookupfileは私が求めていたプラグインです。このプラグインを投票する時、私は「Life Changing」を選びました。

 

  • インストール

http://www.vim.org/scripts/script.php?script_id=1581 から、lookupfileプラグインをダウンロードします。

lookupfileのバージョン1.6からは、Vim 7.1が必須となっています。私のLinuxはデフォルトがVim 7.0です。Vim 7.1をコンパイルして見たが、Vim 7.1のGUIフォントについて、私が好きなIPAゴシックが利用できなかったため、やめました。結局、lookupfileの1.4版をインストールし ました。

ダウンロードしたファイルを~/.vim フォルダに解凍します(Windowsの場合は$VIM/vimfilesまたは$HOME/vimfiles)。Vimから「:helptags ~/.vim/doc」コマンドを実行し、ヘルプを生成します。これで「:help lookupfile」でlookupfileのヘルプを表示できます。

また、lookupfileを動かすにはgenutilsプラグインが必要となります。http://www.vim.org/scripts/script.php?script_id=197 からダウンロードし、~/.vim フォルダに解凍します。

続いては、lookupfileの使用について紹介します。名前はlookupfileですが、このプラグインはファイル以外も、バッファとフォルダなどの検索もできます。

 

  • ファイル、バッファとフォルダの検索

lookupfileはファイルを検索時、tagファイルが必要です。前回紹介した「ctags」コマンドで生成したtagファイルも利用できますが、速度が遅い。ですから、プロジェクトのファイル一覧のtagファイルを作ればいい。

例えば、私は以下のシェルを使って、Vim 7.1 のソースのtagファイルを作成します。

#!/bin/sh 
 
# generate tag file for lookupfile plugin 
echo -e "!_TAG_FILE_SORTED\t2\t/2=foldcase/" > filenametags 
find . -not -regex ’.*\.\(png\|gif\)’ -type f -printf "%f\t%p\t1\n" | \ 
        sort -f >> filenametags 

 

※シェルの内容について、前回の Vimでシステム開発 — tagファイルとtaglistプラグイン(その1) を参考してください。

~/src/vim71 の下にこのシェルを実行すれば、~src/vim71 の全てのファイル名とファイルのあるフォルダを含む、filenametags というtagファイルが作れます。

tagファイルが出来たら、次はlookupfileを設定します。Vimで実行します。
:cd ~/src/vim70
:let g:LookupFile_TagExpr = ’"./filenametags"’

※g:LookupFile_TagExprオプションが設定されていない場合、lookupfileはデフォルトtagsオプションが設定された値をtagファイルとします。

以上で準備が完了しました。lookupfileでファイルを開いて見てみましょう。<F5>、または「:Lookupfile」でlookupfileウィンドを画面トップ部に開きます。そこにファイル名の一部を入力すると、マッチしたファイルの一覧が表示します。もちろん、正規表現も対応します。矢印キーでファイルを選んで、Enterを押せばファイルが開きます。

以下はlookupfileを使ってファイルを検索するの例です。:Lookupfile

lookupfile プラグイン

画面トップのウィンドはlookupfileです、そこに「gui」を入力します、マッチしたファイルが一覧が表示され、選んだファイルにEnterを押すとファイルが開いて、lookupfileウィンドも閉じます。

lookupfileはファイル以外のほかの機能があります、よく使うのはバッファとフォルダの検索です。

:LUBufs バッファ検索
:LUWalk フォルダ検索

 

  • 設定

自分の編集習慣と合せてlookupfileのオプションを設定します。私のvimrcには以下のように設定しています。

こう設定することで、「,lk」を入力した場合、指定のtagファイルを利用してファイルの検索を行います。「,lt」で新しいタブでファイルを検索します。検索時、大文字と小文字を区別しません。

 

 関連ヘルプ

:help lookupfile  

 

Share and Enjoy:
  • del.icio.us
  • Google Bookmarks
  • Facebook
  • FriendFeed
  • Twitter
カテゴリー: vim タグ: ,