fudist


mru.vim カラー表示化

オリジナル

http://www.vim.org/scripts/script.php?script_id=521
本パッチが対応しているのは
mru.vim 3.2 (2008-09-23)です。

mru.vimは最近使用したファイルをgvimのメニューに追加するプラグインです。
またvim/gvim両方で使用できるCUIモードもあります。
これにファイル表示の色分け、絞り込み、ソートなど改変を加えて、CUIモードを簡単なMRUバッファリスト代わりにも使っています。

パッチ適用済みファイル

この改変パッチを使用した場合の動作については、オリジナルの作者様には問い合わせしないでください。
動作がおかしいと思ったら使用を中止し、オリジナルに戻してください。

mru.vim

(2009/11/12)
  • デフォルトの色指定を &background で変更するようにしました。
    デフォルトでは以下のハイライトにリンクされます。
     hi_MruFname Directory
     hi_MruFnamePath WarningMessage


ランタイムのpluginフォルダ、vimfiles/plugin(unixは.vim/plugin)にmru.vimをコピー(上書き)してください。

改変部分

CUI部分を改変しました。
:MRUで起動します。
  • ファイル名表示を変更/色分けして、カーソルラインを表示可能にしました。
    色は指定可能です。
    (改変前)

    (改変後)
  • sコマンドを追加しました。(文字列による絞り込み)
    ex.
    1 aaa.vim ~/bin/vim/aaa.vim
    2 bbb.vim ~/bin/vim/bbb.vim
    3 ccc.vim ~/bin/vim/ccc.vim
    sbbb<CR>と入力すると次のように変わります。
    1 bbb.vim ~/bin/vim/bbb.vim
    uでアンドゥ可能です。

  • Sを押すとファイル名でソートします
  • 数字+<CR>で対応する行番号のファイルを開く様にしました。
改変部分には "Modify"のコメントが入っていますので、気になる場合はソースの Modify を検索してみて下さい。
オリジナルの部分はコメントアウトして残っているので、気にいらない部分は元に戻せます。

またESCで終了可能にもなっています。
起動用のショートカットキーを定義して、簡単にON/OFFできるようにするとかなり使えます。

追加オプション

"ファイル名表示の色設定
let hi_MruFname     = 'ctermfg=cyan ctermbg=none guifg=cyan guibg=bg'
let hi_MruFnamePath = 'ctermfg=red ctermbg=none guifg=red guibg=bg'
"カーソルラインを使用する
let MRU_Use_CursorLine = 1

これでファイル名が多くなっても混乱しなくなったので、次のように .vimrc を設定して使っています。
ファイルのMRUはもちろんですが、簡単なバッファリスト代わりに使えて便利です。
let MRU_Window_Height = 20
let MRU_Max_Entries   = 20
let MRU_Use_CursorLine = 1

パッチファイル

必要なファイル

mru.vim 3.2用パッチ mru-patch.zip
patch.exe http://gnuwin32.sourceforge.net/packages/patch.htm
必要なのはBinariesの中のpatch.exeです。

パッチを当てるのはmru.vimです。

コマンドプロンプトを使わずパッチを当てる

  1. mru.vim、patch.exe、mru.patch、mru.patch.bat を全て同じフォルダへコピー
  2. mru.patch.batをダブルクリックして実行
  3. 改変したmru.vimを上書きコピー

コマンドプロンプトからパッチを当てる

c:\tempにコピーして実行する場合は以下のようになります。
  1. mru.vim、patch.exe、mru.patch をc:\tempへコピー
  2. コマンドプロンプトを開く
  3. cd c:\temp
  4. patch --binary < mru.patch
  5. 改変したmru.vimを上書きコピー
コマンドプロンプトはWindowsXpだとスタートメニュー→全てのプログラム→アクセサリにあります。