*fuf.jax* バッファ/ファイル/その他を、あいまい検索 Copyright (c) 2007-2010 Takeshi NISHIDA FuzzyFinder *fuzzyfinder* *fuf* 概要 |fuf-introduction| インストール |fuf-installation| 使い方 |fuf-usage| モード |fuf-modes| 詳細なトピック |fuf-detailed-topics| コマンド |fuf-commands| オプション |fuf-options| VIMRC の例 |fuf-vimrc-example| SPECIAL THANKS |fuf-thanks| CHANGELOG |fuf-changelog| あばうと |fuf-about| ============================================================================== 概要 *fuf-introduction* FuzzyFinder はバッファ/ファイル/コマンド/ブックマーク/タグに素早くアクセスする ための手段を提供します。入力されたパターンから変換されたあいまいパターンまたは 部分一致パターンで検索を行います。 入力パターン あいまいパターン 部分一致パターン ~ > abc *a*b*c* *abc* dir/file dir/*f*i*l*e* dir/*file* d*r/file d*r/*f*i*l*e* d*r/*file* ../**/s ../**/*s* ../**/*s* (** : 再帰検索) < 次のような場面で有用です: "./AhLongLongLongLongLongFile.txt" "./AhLongLongLongLongLongName.txt" "./OhLongLongLongLongLongFile.txt" "./OhLongLongLongLongLongName.txt" <- 欲しいファイル :-O "ON" と入力すれば "OhLongLongLongLongLongName.txt" が選択できます. :-D FuzzyFinder が検索できる対象は次の通りです: - バッファ - ファイル - ディレクトリ - 最近使ったファイル - 最近使ったファイルの近くのファイル - 最近使ったコマンドライン - ブックマークされたファイル - ブックマークされたディレクトリ - タグ - タグファイルに含まれるファイル - ジャンプリスト - チェンジリスト - バッファの行 - quickfix - ヘルプ FuzzyFinder は ファイルを検索したりアイテムを選択するシステムを利用するための API も提供します。 FuzzyFinder はマルチバイト文字をサポートしています。 ============================================================================== インストール *fuf-installation* ZIPファイルをランタイムディレクトリに展開します。 以下のようにファイルが配置されるはずです。 > <ランタイムディレクトリ>/plugin/fuf.vim <ランタイムディレクトリ>/doc/fuf.txt ... < もしランタイムディレクトリが多数のプラグインでごちゃごちゃになるのが嫌なら、各 プラグインを個別のディレクトリに配置し、そのディレクトリのパスを 'runtimepath' に追加してください。アンインストールも楽になります。 その後、ヘルプを有効にするためにタグファイルを更新してください。詳しくは |add-local-help|を参照してください。 必要なもの: ~ - L9 library (vimscript #3252) ============================================================================== 使い方 *fuf-usage* 次のコマンドで FuzzyFinder を起動します: コマンド モード ~ |:FufBuffer| - Buffer モード (|fuf-buffer-mode|) |:FufFile| - File モード (|fuf-file-mode|) |:FufCoverageFile| - Coverage-File モード (|fuf-coveragefile-mode|) |:FufDir| - Directory モード (|fuf-dir-mode|) |:FufMruFile| - MRU-File モード (|fuf-mrufile-mode|) |:FufMruCmd| - MRU-Command モード (|fuf-mrucmd-mode|) |:FufBookmarkFile| - Bookmark-File モード (|fuf-bookmarkfile-mode|) |:FufBookmarkDir| - Bookmark-Dir モード (|fuf-bookmarkdir-mode|) |:FufTag| - Tag モード (|fuf-tag-mode|) |:FufBufferTag| - Buffer-Tag モード (|fuf-buffertag-mode|) |:FufTaggedFile| - Tagged-File モード (|fuf-taggedfile-mode|) |:FufJumpList| - Jump-List モード (|fuf-jumplist-mode|) |:FufChangeList| - Change-List モード (|fuf-changelist-mode|) |:FufQuickfix| - Quickfix モード (|fuf-quickfix-mode|) |:FufLine| - Line モード (|fuf-line-mode|) |:FufHelp| - Help モード (|fuf-help-mode|) これらのコマンドを押しやすいキーにマッピングすることを推奨します。 これらのコマンドを実行するとパターンを入力するための1行のバッファを開き、イン サートモードを開始します。 FuzzyFinder は入力されたパターンにマッチするアイテムを検索し、それを補完メニュ ーに表示します。パターンマッチングの詳細は|fuf-search-patterns|を参照してくだ さい。 多くのアイテムがマッチングする場合、FuzzyFinder はレスポンスを向上させるために 列挙するアイテムの数(|g:fuf_enumeratingLimit|)を制限し、その際、入力されたパタ ーンを"Error" グループでハイライトします。 補完メニューの最初のアイテムは自動的に選択状態になります。 で入力パターンからカーソル前の、ディレクトリ名などのひとかたまりを削除す ることができます。 (|g:fuf_keyPrevPattern|) と (|g:fuf_keyNextPattern|) で、履歴から 過去に入力したパターンを呼び出すことができます。 いろいろな方法で、選択されたアイテムを開くことができます: (|g:fuf_keyOpen|) - 直前のウィンドウで開きます。 (|g:fuf_keyOpenSplit|) - ウィンドウを分割して開きます。 (|g:fuf_keyOpenVsplit|) - ウィンドウを垂直分割して開きます。 (|g:fuf_keyOpenTabpage|) - 別のタブページで開きます。 キャンセルして直前のウィンドウに戻るには、インサートモードを抜けてください。 (|g:fuf_keySwitchMatching|) で、検索方法をあいまいマッチングまたは 部分一致マッチングに交互に切り替えることができます。 (|g:fuf_keyNextMode|) と (|g:fuf_keyPrevMode|) で、インサートモー ドを抜けることなくカレントモードを切り替えることが出来ます。 いくつかのモードでは、選択されたアイテムを (|g:fuf_keyPreview|) でプレビ ューすることができます。同じアイテムでキーを繰り返すことで別の情報を表示させる ことができます。プレビューをサポートするモードを起動すると、コマンドラインの高 さが|g:fuf_previewHeight|になります。この機能は|g:fuf_previewHeight|が0ではな い場合、有効になります。 ============================================================================== モード *fuf-modes* *fuf-buffer-mode* Buffer モード ~ このモードはバッファを選択して開くインターフェースを提供します。 Buffer モード中に (|g:fuf_buffer_keyDelete|) を押すと選択したバッファを 削除することができます。 *fuf-file-mode* File モード ~ このモードはファイルツリーからファイルを検索して開くインターフェースを提供しま す。 *fuf-coveragefile-mode* Coverage-File モード ~ このモードはあらかじめ設定した検索対象の全ファイルからファイルを選択して開くイ ンターフェースを提供します。 デフォルトではカレントディレクトリ以下の全ファイルを列挙します。 (|g:fuf_coveragefile_globPatterns|) 他の検索対象を検索したい場合、|FufCoverageFileRegister|コマンドで新しい検索対 象を登録し、|FufCoverageFileChange|コマンドで検索対象を選択して Coverage-File モードを起動します。 加えて、|fuf#setOneTimeVariables()|関数を使う方法もあります。 例: .hと.cファイルだけ検索する: > call fuf#setOneTimeVariables(['g:fuf_coveragefile_globPatterns', ['**/*.h', '**/*.c']]) \ | FufCoverageFile < 例: デフォルトの検索対象に加えてホームディレクトリも検索する: > call fuf#setOneTimeVariables(['g:fuf_coveragefile_globPatterns', g:fuf_coveragefile_globPatterns + ['~/**/.*', '~/**/*']]) \ | FufCoverageFile < *fuf-dir-mode* Directory モード ~ このモードはファイルツリーからディレクトリを検索してカレントディレクトリを変更 するインターフェースを提供します。 *fuf-mrufile-mode* MRU-File モード ~ このモードは最近使ったファイルを選択して開くインターフェースを提供します。 このモード中に (|g:fuf_mrufile_keyExpand|) を押すと、最近使ったファイル の付近にあるファイルを検索します。このキーを押す毎に、検索範囲をディレクトリツ リーの上下に1階層ずつ広げます。 |BufEnter| と |BufWritePost| で行う処理がパフォーマンス上の問題を起こしうるの で、デフォルトでは無効化するモードに指定されています。(|g:fuf_modesDisable|) See also: |FufMruFileInCwd| *fuf-mrucmd-mode* MRU-Command モード ~ このモードは最近使ったコマンドラインを選択して開くインターフェースを提供します 。 このモードに必要な、コマンドラインモードの のマッピングに副作用があるので、 、デフォルトでは無効化するモードに指定されています。(|g:fuf_modesDisable|) *fuf-bookmarkfile-mode* Bookmark-File モード ~ このモードは事前に追加したブックマークを選択してその行へジャンプするインターフ ェースを提供します。 |:FufBookmarkFileAdd|コマンドでカーソルのある行をブックマークに追加できます。 このコマンドを実行すると、ブックマーク名の入力を求められます。 FuzzyFinder はジャンプする行番号を調整します。ブックマークされた行がブックマー クされたときのパターンとマッチしない場合、FuzzyFinder はブックマークされた位置 の周辺でマッチする行を探します。なのでブックマークした行が多少移動していたとし ても、そこでジャンプすることができます。ブックマークした行番号へ調整せずにジャ ンプしたい場合、|g:fuf_bookmarkfile_searchRange|を 0 に設定してください。 このモード中に (|g:fuf_bookmarkfile_keyDelete|) を押すと選択したブックマ ークを削除することができます。 *fuf-bookmarkdir-mode* Bookmark-Dir モード ~ このモードは事前に追加したブックマークを選択してカレントディレクトリを変更する するインターフェースを提供します。 |:FufBookmarkDirAdd|コマンドでディレクトリをブックマークに追加できます。このコ マンドを実行すると、ディレクトリのパスとブックマーク名の入力を求められます。 このモード中に (|g:fuf_bookmarkdir_keyDelete|) を押すと選択したブックマ ークを削除することができます。 *fuf-tag-mode* Tag モード ~ このモードはタグを選択してその定義へジャンプするインターフェースを提供します。 以下は を置き換えるマッピングです。 > noremap :FufTagWithCursorWord! < *fuf-buffertag-mode* Buffer-Tag モード ~ このモードはカレントバッファまたは全バッファのタグを選択してその定義へジャンプ するインターフェースを提供します。 タグのリストはFuzzyFinderの起動時にその場で作成されるので、前もってtagsファイ ルを作成する必要はありません。 |FufBufferTag|はカレントバッファを対象にし、|FufBufferTagAll|は全バッファを対 象にします。 以下は を置き換えるマッピングです: > nnoremap :FufBufferTagWithCursorWord! vnoremap :FufBufferTagAllWithSelectedText! < または > nnoremap :FufBufferTagAllWithCursorWord! vnoremap :FufBufferTagAllWithSelectedText! < このモードは taglist.vim (vimscript #273) にインスパイアされました。コードも参 考にしています。 *fuf-taggedfile-mode* Tagged-File モード ~ このモードはタグファイルに含まれるファイルを選択して開くインターフェースを提供 します。 *fuf-jumplist-mode* Jump-List モード ~ このモードはカレントウィンドウの|jumplist|から選択した位置へジャンプするインタ ーフェースを提供します。 *fuf-changelist-mode* Change-List モード ~ このモードはカレントバッファの|changelist|から選択した位置へジャンプするインタ ーフェースを提供します。 *fuf-quickfix-mode* Quickfix モード ~ このモードは|quickfix|リストから選択した位置へジャンプするインターフェースを提 供します。 *fuf-line-mode* Line モード ~ このモードはカレントバッファの行を選択してジャンプするインターフェースを提供し ます。 *fuf-help-mode* Help モード ~ このモードはヘルプタグを選択してそのヘルプページへジャンプするインターフェース を提供します。 *fuf-givenfile-mode* Given-File モード ~ このモードは与えられたリストから選択されたファイルを開く API を提供します。 API 関数: > function fuf#givenfile#launch( \ initialPattern, partialMatching, prompt, items) < initialPattern - FuzzyFinder 起動直後に挿入される文字列 partialMatching - あいまい検索ではなく部分一致検索を行うか prompt - プロンプト文字列 items - アイテムのリスト 利用例: > " ドットファイルを開く call fuf#givenfile#launch('', 0, '>', split(glob('~/.*'), "\n")) < *fuf-givendir-mode* Given-Directory モード ~ このモードは与えられたリストから選択されたディレクトリにカレントディレクトリを 変更する API を提供します。 API 関数: > function fuf#givendir#launch( \ initialPattern, partialMatching, prompt, items) < initialPattern - FuzzyFinder 起動直後に挿入される文字列 partialMatching - あいまい検索ではなく部分一致検索を行うか prompt - プロンプト文字列 items - アイテムのリスト 利用例: > " ランタイムディレクトリのどれかをカレントディレクトリにする call fuf#givendir#launch('', 0, '>', split(&runtimepath, ',')) < *fuf-givencmd-mode* Given-Command モード ~ このモードは与えられたリストから選択されたコマンドを実行する API を提供します。 選択されたコマンドは feedkeys() によって実行されるので、ノーマルモードでの一連 のキー入力をエミュレートさせることも可能です。 API 関数: > function fuf#givencmd#launch( \ initialPattern, partialMatching, prompt, items) < initialPattern - FuzzyFinder 起動直後に挿入される文字列 partialMatching - あいまい検索ではなく部分一致検索を行うか prompt - プロンプト文字列 items - アイテムのリスト 利用例: > function GetAllCommands() redir => commands silent command redir END return map((split(commands, "\n")[3:]), \ '":" . matchstr(v:val, ''^....\zs\S*'')') endfunction " ユーザー定義コマンドを選択して実行 call fuf#givencmd#launch('', 0, '>', GetAllCommands()) < *fuf-callbackfile-mode* Callback-File モード ~ このモードはファイルを検索して選択されたファイルパスを得る API を提供します。 API 関数: > function fuf#callbackfile#launch( \ initialPattern, partialMatching, prompt, exclude, listener) < initialPattern - FuzzyFinder 起動直後に挿入される文字列 partialMatching - あいまい検索ではなく部分一致検索を行うか prompt - プロンプト文字列 exclude - 補完リストから除外したいアイテムの正規表現パターン listener - 'onComplete' と 'onAbort' を持つ|Dictionary|。これ らは FuzzyFinder 終了時に呼ばれます。 listener.onComplete(item, method) は選択が完了したと き、選択されたアイテム名とオープン方式番号の2引数と 共に呼ばれます。listener.onAbort() は選択を中止した ときに呼ばれます。 利用例: > let listener = {} function listener.onComplete(item, method) echo "Item: " . a:item . "\nMethod: " . a:method endfunction function listener.onAbort() echo "Abort" endfunction " カレントディレクトリからファイルを選択 call fuf#callbackfile#launch('', 0, '>', '', listener) " ホームディレクトリからファイルを選択 call fuf#callbackfile#launch('~/', 0, '>', '', listener) < *fuf-callbackitem-mode* Callback-Item モード ~ このモードは与えられたリストから選択されたアイテムを得るための API を提供しま す。 API 関数: > function fuf#callbackitem#launch( \ initialPattern, partialMatching, prompt, listener, items, forPath) < initialPattern - FuzzyFinder 起動直後に挿入される文字列 partialMatching - あいまい検索ではなく部分一致検索を行うか prompt - プロンプト文字列 listener - 'onComplete' と 'onAbort' を持つ|Dictionary|。これ らは FuzzyFinder 終了時に呼ばれます。 listener.onComplete(item, method) は選択が完了したと き、選択されたアイテム名とオープン方式番号の2引数と 共に呼ばれます。listener.onAbort() は選択を中止した ときに呼ばれます。 items - アイテムのリスト forPath - ファイル選択に特化したマッチングを利用するか 利用例: > let listener = {} function listener.onComplete(item, method) echo "Item: " . a:item . "\nMethod: " . a:method endfunction function listener.onAbort() echo "Abort" endfunction " 与えられたリストからアイテムを選択 call fuf#callbackitem#launch('', 0, '>', listener, ['ed', 'vi', 'vim'], 0) " 与えられたリストからファイルを選択 call fuf#callbackitem#launch('', 0, '>', listener, ['../foo/bar', 'baz'], 1) < ============================================================================== 詳細なトピック *fuf-detailed-topics* *fuf-setting-one-time-option* *fuf#setOneTimeVariables()* 一回限りのオプションの設定 ~ 次回の FuzzyFinder 用に一回限りのオプションを設定したいとき、 |fuf#setOneTimeVariables()|関数が役に立ちます。この関数は次のようにして使いま す: > call fuf#setOneTimeVariables(['g:fuf_ignoreCase', 0], ['&lines', 50]) < この関数は 0 個以上の引数を取り、各々は変数名と値のペアです。指定されたオプシ ョンは次回 FuzzyFinder が起動したときに実際に設定され、終了するときに復元され ます。 *fuf-search-patterns* 検索パターン ~ 検索パターンとして、一つのプライマリパターンと0個以上の絞り込みパターンを入力 することができます。入力パターンは ";" (|g:fuf_patternSeparator|) で区切られ、 最初のパターンがプライマリパターンになり、残りのパターンが絞り込みパターンにな ります。 > プライマリ 絞り込み 絞り込み |----------| |-------| |----| >MruFile>bookmark.vim;autoload/;/home/ < プライマリパターンにマッチしたアイテムのリストを別のパターンで絞り込むために、 絞り込みパターンを利用します。 プライマリパターンでは、あいまいマッチングと部分一致マッチングのうち、選択され た方を行います。絞り込みパターンでは、デフォルトで部分一致マッチングを行います 。(|g:fuf_fuzzyRefining|) 絞り込みパターンとして数値を入力した場合、アイテムのインデックスに対しても マッチングします。 ファイルパスの静的な集合を対象とするモード (Buffer, MRU-File モードなど。File, Directory モードなどではない) で|g:fuf_splitPathMatching|が真の場合、プライマ リパターンのマッチングは head 部とtail 部に分けて行われます。 > head tail |------||-----| foo/bar/baz.vim あいまいマッチング例: +----------------+---------+---------+---------+ | item \ pattern | foo/bar | foo/ | bar | +----------------+---------+---------+---------+ | foo/bar | match | match | match | | foo/abc | unmatch | match | unmatch | | abc/bar | unmatch | unmatch | match | | foobar | unmatch | unmatch | match | | foooo/barrrr | match | match | match | | foooo/fooooo | unmatch | match | unmatch | +----------------+---------+---------+---------+ < 上記のケースで、絞り込みパターンはパス全体に対してマッチングできます。 *fuf-sorting-of-completion-items* 補完アイテムのソート ~ FuzzyFinder は幾つかのルールに従って補完アイテムをソートします。 パターン全体が一部分にぴったりマッチするアイテムは優先されます。例えば、パター ン "bc" ではアイテム "abc" は "bac" より優先されます。 このケースで、マッチする部分が先頭であるアイテムはそうでないアイテムより優先さ れます。例えばパターン "foo" ではアイテム "foobar" は"barfoo" より優先されます 。 マッチング位置より後の文字数が少ないほど優先されます。例えばパターン "bar" で はアイテム"foobar" は"foobarbaz"より優先されます。 単語の境界文字にだけマッチングするアイテムは優先されます。 例えば、パターン "fb" ではアイテム"fooBarBaz" や "foo_bar_baz" などが優先されます。 加えて、FuzzyFinder には学習システムがあります。現在のパターンで、過去に補完さ れたことのあるアイテムを優先します。 *fuf-reusing-window* 目的のバッファ/ファイルが開かれているウィンドウの再利用 ~ ウィンドウを分割してバッファ/ファイルを開くときに、現在のタブページでそれが開 かれているウィンドウが見つかった場合、そこへ移動します。別のタブページでバッフ ァ/ファイルを開くときに、他のタブページでそれが開かれているウィンドウが見つか った場合、そこへ移動します。 常にバッファ/ファイルを新ウィンドウで開きたい場合、'reuse_window'オプションで この機能を無効にすることができます。 *fuf-hiding-menu* 補完メニューの一時非表示 ~ で補完メニューを閉じることができます。また、で再度開くことがで きます。 *fuf-abbreviation* *fuf-multiple-search* 短縮入力及び複合検索 ~ |g:fuf_abbrevMap|を設定することで、全モードで短縮入力と複合検索が利用できます。 例えば次のように設定したとします: > let g:fuf_abbrevMap = { \ "^doc:" : [ \ "~/project/**/doc/", \ ".vim/doc/", \ ], \ } < そして File モードで "doc:txt" と入力すると、次の2つのパターンの検索結果を複合 します: "~/project/**/doc/*t*x*t*" ".vim/doc/*t*x*t*" *fuf-data-file* データファイル ~ FuzzyFinder は補完統計、MRUデータ、ブックマークなどを|g:fuf_dataDir|以下のファ イルに書き込みます。 |:FufEditDataFile|コマンドはデータファイルの編集を補助します。このコマンドを実 行すると、データファイルを無名バッファに読み込みます。:write などで書き込みを 行うと、データファイルを更新します。 *fuf-cache* キャッシュ ~ 一旦キャッシュが生成されると、レスポンスを向上させるため自動的には更新されませ ん。これを更新するには|:FufRenewCache|コマンドを実行してください。 *fuf-dot-sequence* ドット列で親ディレクトリへ移動 ~ ドット列を入力することで親ディレクトリを上がっていくことができます。パス区切り 文字直後のドット列は "../" の列に展開されます。 ドット列 展開パターン ~ /.. /../ /... /../../ /.... /../../../ *fuf-how-to-add-mode* モードの追加方法 ~ "mymode" モードを追加するには、ソースファイルを autoload/fuf/mymode.vim に置き 、 fuf#addMode('mymode') を呼びます。 *fuf-migemo* Migemo とは ~ 以下のページを参照してください。 - http://0xcc.net/migemo/ - http://www.kaoriya.net/#CMIGEMO ============================================================================== コマンド *fuf-commands* See also: |fuf-vimrc-example| *:FufBuffer* :FufBuffer [{pattern}] Buffer モードを起動します。 ! 修飾子を付けて実行した場合、あいまい検索ではなく部分一致検索を行うよ うになります。 FuzzyFinder 起動後に {pattern} が挿入されます。 *:FufFile* :FufFile [{pattern}] File モードを起動します。 ! 修飾子を付けて実行した場合、あいまい検索ではなく部分一致検索を行うよ うになります。 FuzzyFinder 起動後に {pattern} が挿入されます。 *:FufFileWithFullCwd* :FufFileWithFullCwd [{pattern}] カレントディレクトリのフルパスを初期パターンとする以外は|:FufFile|と同 じです。 *:FufFileWithCurrentBufferDir* :FufFileWithCurrentBufferDir [{pattern}] カレントバッファのディレクトリを初期パターンとする以外は|:FufFile|と同 じです。 *:FufDir* :FufDir [{pattern}] Directory モードを起動します。 ! 修飾子を付けて実行した場合、あいまい検索ではなく部分一致検索を行うよ うになります。 FuzzyFinder 起動後に {pattern} が挿入されます。 *:FufDirWithFullCwd* :FufDirWithFullCwd [{pattern}] カレントディレクトリのフルパスを初期パターンとする以外は|:FufDir|と同 じです。 *:FufDirWithCurrentBufferDir* :FufDirWithCurrentBufferDir [{pattern}] カレントバッファのディレクトリを初期パターンとする以外は|:FufDir|と同 じです。 *:FufMruFile* :FufMruFile [{pattern}] MRU-File モードを起動します。 ! 修飾子を付けて実行した場合、あいまい検索ではなく部分一致検索を行うよ うになります。 FuzzyFinder 起動後に {pattern} が挿入されます。 *:FufMruFileInCwd* :FufMruFileInCwd [{pattern}] カレントディレクトリ内のファイルのみを対象とする以外は |:FufMruFile|と同じです。 *:FufMruCmd* :FufMruCmd [{pattern}] MRU-Command モードを起動します。 ! 修飾子を付けて実行した場合、あいまい検索ではなく部分一致検索を行うよ うになります。 FuzzyFinder 起動後に {pattern} が挿入されます。 *:FufBookmarkFile* :FufBookmarkFile [{pattern}] Bookmark-File モードを起動します。 ! 修飾子を付けて実行した場合、あいまい検索ではなく部分一致検索を行うよ うになります。 FuzzyFinder 起動後に {pattern} が挿入されます。 *:FufBookmarkDir* :FufBookmarkDir [{pattern}] Bookmark-Dir モードを起動します。 ! 修飾子を付けて実行した場合、あいまい検索ではなく部分一致検索を行うよ うになります。 FuzzyFinder 起動後に {pattern} が挿入されます。 *:FufTag* :FufTag [{pattern}] Tag モードを起動します。 ! 修飾子を付けて実行した場合、あいまい検索ではなく部分一致検索を行うよ うになります。 FuzzyFinder 起動後に {pattern} が挿入されます。 *:FufTagWithCursorWord* :FufTagWithCursorWord [{pattern}] カーソル下の単語を初期パターンとする以外は|:FufTag|と同じです。 *:FufBufferTag* :FufBufferTag[!] [{pattern}] Buffer-Tag モードを起動します。 ! 修飾子を付けて実行した場合、あいまい検索ではなく部分一致検索を行うよ うになります。 FuzzyFinder 起動後に {pattern} が挿入されます。 *:FufBufferTagAll* :FufBufferTagAll[!] [{pattern}] カレントバッファだけでなく他の全てのバッファからもタグを集める以外は |:FufBufferTag|と同じです。 *:FufBufferTagWithCursorWord* :FufBufferTagWithCursorWord[!] [{pattern}] カーソル下の単語を初期パターンとする以外は|:FufBufferTag|と同じです。 *:FufBufferTagAllWithCursorWord* :FufBufferTagAllWithCursorWord[!] [{pattern}] カーソル下の単語を初期パターンとする以外は|:FufBufferTagAll|と同じです 。 *:FufBufferTagWithSelectedText* :FufBufferTagWithSelectedText[!] [{pattern}] 最後に選択したテキストを初期パターンとする以外は|:FufBufferTag|と同じ です。 *:FufBufferTagAllWithSelectedText* :FufBufferTagAllWithSelectedText[!] [{pattern}] 最後に選択したテキストを初期パターンとする以外は|:FufBufferTagAll|と同 じです。 *:FufTaggedFile* :FufTaggedFile [{pattern}] Tagged-File モードを起動します。 ! 修飾子を付けて実行した場合、あいまい検索ではなく部分一致検索を行うよ うになります。 FuzzyFinder 起動後に {pattern} が挿入されます。 *:FufJumpList* :FufJumpList [{pattern}] Jump-List モードを起動します。 ! 修飾子を付けて実行した場合、あいまい検索ではなく部分一致検索を行うよ うになります。 FuzzyFinder 起動後に {pattern} が挿入されます。 *:FufChangeList* :FufChangeList [{pattern}] Change-List モードを起動します。 ! 修飾子を付けて実行した場合、あいまい検索ではなく部分一致検索を行うよ うになります。 FuzzyFinder 起動後に {pattern} が挿入されます。 *:FufQuickfix* :FufQuickfix [{pattern}] Quickfix モードを起動します。 ! 修飾子を付けて実行した場合、あいまい検索ではなく部分一致検索を行うよ うになります。 FuzzyFinder 起動後に {pattern} が挿入されます。 *:FufLine* :FufLine [{pattern}] Line モードを起動します。 ! 修飾子を付けて実行した場合、あいまい検索ではなく部分一致検索を行うよ うになります。 FuzzyFinder 起動後に {pattern} が挿入されます。 *:FufHelp* :FufHelp[!] [{pattern}] Help モードを起動します。 ! 修飾子を付けて実行した場合、あいまい検索ではなく部分一致検索を行うよ うになります。 FuzzyFinder 起動後に {pattern} が挿入されます。 *:FufEditDataFile* :FufEditDataFile データファイルを編集するためのバッファを開きます。詳しくは |fuf-data-file|を参照してください。 *:FufCoverageFileRegister* :FufCoverageFileRegister Coverage-File モードで検索される、新しい検索対象を登録します。最初に ~/* のような glob パターンを入力します。 を入力するまでパターン を追加することができます。次に対象名を入力します。 See also: |glob()|, |fuf-coveragefile-mode| *:FufCoverageFileChange* :FufCoverageFileChange [{name}] |FufCoverageFileRegister|コマンドで登録されている中から選択された検索 対象でCoverage-File モードを起動します。 対象名が与えられた場合、選択プロセスは飛ばされます。 See also: |fuf-coveragefile-mode| *:FufBookmarkFileAdd* :FufBookmarkFileAdd [{name}] カーソル行をブックマークに追加します。 See also: |fuf-bookmarkfile-mode| *:FufBookmarkFileAddAsSelectedText* :FufBookmarkFileAddAsSelectedText 最後に選択されたテキストをブックマーク名とする以外は |:FufBookmarkFileAdd|と同じです。 *:FufBookmarkDirAdd* :FufBookmarkDirAdd [{name}] ディレクトリをブックマークに追加します。 See also: |fuf-bookmarkdir-mode| *:FufRenewCache* :FufRenewCache 補完アイテムを作り直すためにキャッシュを削除します。詳しくは |fuf-cache|を参照してください。 ============================================================================== オプション *fuf-options* *fuf-options-for-all-modes* 全モード用 ~ *g:fuf_modesDisable* > let g:fuf_modesDisable = [ 'mrufile', 'mrucmd', ] < 無効にするモード名のリスト。これに含まれるモードは初期化されず、イベン トの処理も行われません。 *g:fuf_keyOpen* > let g:fuf_keyOpen = '' < 補完を確定し、バッファ/ファイルを直前のウィンドウで開くキー。 *g:fuf_keyOpenSplit* > let g:fuf_keyOpenSplit = '' < 補完を確定し、バッファ/ファイルを直前のウィンドウを分割して開くキー。 *g:fuf_keyOpenVsplit* > let g:fuf_keyOpenVsplit = '' < 補完を確定し、バッファ/ファイルを直前のウィンドウを垂直分割して開くキ ー。 *g:fuf_keyOpenTabpage* > let g:fuf_keyOpenTabpage = '' < 補完を確定し、バッファ/ファイルを別タブページ開くキー。 *g:fuf_keyPreview* > let g:fuf_keyPreview = '' < 選択されている補完アイテムの情報をコマンドライン領域に表示するキー。プ レビューをサポートするモードでのみ作用します。 *g:fuf_keyNextMode* > let g:fuf_keyNextMode = '' < 次のモードに切り替えるキー。 *g:fuf_keyPrevMode* > let g:fuf_keyPrevMode = '' < 前のモードに切り替えるキー。 *g:fuf_keyPrevPattern* > let g:fuf_keyPrevPattern = '' < 履歴から前の入力パターンを呼び出すキー。 *g:fuf_keyNextPattern* > let g:fuf_keyNextPattern = '' < 履歴から次の入力パターンを呼び出すキー。 *g:fuf_keySwitchMatching* > let g:fuf_keySwitchMatching = '' < あいまいマッチングと部分一致マッチングを切り替えるキー。 *g:fuf_dataDir* > let g:fuf_dataDir = '~/.vim-fuf-data' < データファイルを置くディレクトリのパス。空文字列を設定するとファイルへ の書き込みは行われなくなります。 *g:fuf_abbrevMap* > let g:fuf_abbrevMap = {} < |Dictionary|型でそれぞれの値は|List|型です。入力されたテキストの、キー にマッチする部分が対応する値に展開されます。 *g:fuf_patternSeparator* > let g:fuf_patternSeparator = ';' < 入力パターンをプライマリパターンと絞り込みパターン列に区切る文字列。 *g:fuf_promptHighlight* > let g:fuf_promptHighlight = 'Question' < プロンプトをハイライトするグループ名。 *g:fuf_ignoreCase* > let g:fuf_ignoreCase = 1 < 真なら、大文字小文字を無視します。 *g:fuf_splitPathMatching* > let g:fuf_splitPathMatching = 1 < 真なら、プライマリパターンのマッチングは head 部とtail 部に分けて行わ れます。 See also: |fuf-search-patterns| *g:fuf_fuzzyRefining* > let g:fuf_fuzzyRefining = 0 < 真なら、絞り込みパターンについて部分一致マッチングの代わりにあいまいマ ッチングが行われます。 See also: |fuf-search-patterns| *g:fuf_reuseWindow* > let g:fuf_reuseWindow = 1 < 真なら、すでに開かれているバッファを開くとき、目的のバッファを含むウィ ンドウを再利用します。 *g:fuf_timeFormat* > let g:fuf_timeFormat = '(%Y-%m-%d %H:%M:%S)' < アイテムが登録された日時の書式を設定します。書式の詳細は|strftime()|を 参照してください。 *g:fuf_learningLimit* > let g:fuf_learningLimit = 100 < 保持する補完統計データのモード毎の上限値です。 *g:fuf_enumeratingLimit* > let g:fuf_enumeratingLimit = 50 < レスポンスを向上させるため、補完アイテムの列挙をこの数に達した時点で打 ち切ります。 *g:fuf_maxMenuWidth* > let g:fuf_maxMenuWidth = 78 < 長い補完アイテムは、この長さに収まるよう省略して表示します。 *g:fuf_previewHeight* > let g:fuf_previewHeight = 0 < プレビューをサポートするモードを起動したとき、'cmdheight'がこの値に設 定されます。選択されている補完アイテムの情報がコマンドライン領域に表示 されます。0 ならプレビュー機能は無効になります。 *g:fuf_autoPreview* > let g:fuf_autoPreview = 0 < 真ならプレビューを自動的に表示します。 *g:fuf_useMigemo* > let g:fuf_useMigemo = 0 < 真なら migemo を利用します。 *fuf-options-for-buffer-mode* Buffer モード用 ~ *g:fuf_buffer_prompt* > let g:fuf_buffer_prompt = '>Buffer[]>' < プロンプト文字列。"[]" はインジケータに置換されます。 *g:fuf_buffer_switchOrder* > let g:fuf_buffer_switchOrder = 10 < 次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード には切り替えません。 *g:fuf_buffer_mruOrder* > let g:fuf_buffer_mruOrder = 1 < 真なら、最後に使った時間順に補完アイテムをソートします。 *g:fuf_buffer_keyDelete* > let g:fuf_buffer_keyDelete = '' < 選択したバッファを削除するキー。 *fuf-options-for-file-mode* File モード用 ~ *g:fuf_file_prompt* > let g:fuf_file_prompt = '>File[]>' < プロンプト文字列。"[]" はインジケータに置換されます。 *g:fuf_file_switchOrder* > let g:fuf_file_switchOrder = 20 < 次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード には切り替えません。 *g:fuf_file_exclude* > let g:fuf_file_exclude = '\v\~$|\.(o|exe|bak|orig|swp)$|(^|[/\\])\.(hg|git|bzr)($|[/\\])' < 補完リストから除外したいアイテムの正規表現パターン。 *fuf-options-for-coveragefile-mode* Coverage-File モード用 ~ *g:fuf_coveragefile_prompt* > let g:fuf_coveragefile_prompt = '>CoverageFile[]>' < プロンプト文字列。"[]" はインジケータに置換されます。 *g:fuf_coveragefile_switchOrder* > let g:fuf_coveragefile_switchOrder = 30 < 次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード には切り替えません。 *g:fuf_coveragefile_exclude* > let g:fuf_coveragefile_exclude = '\v\~$|\.(o|exe|dll|bak|orig|swp)$|(^|[/\\])\.(hg|git|bzr)($|[/\\])' < 補完リストから除外したいアイテムの正規表現パターン。 *g:fuf_coveragefile_globPatterns* > let g:fuf_coveragefile_globPatterns = ['**/.*', '**/*'] < 検索されるファイルパスを得るためのglobパターンのリスト。 *fuf-options-for-dir-mode* Directory モード用 ~ *g:fuf_dir_prompt* > let g:fuf_dir_prompt = '>Dir[]>' < プロンプト文字列。"[]" はインジケータに置換されます。 *g:fuf_dir_switchOrder* > let g:fuf_dir_switchOrder = 40 < 次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード には切り替えません。 *g:fuf_dir_exclude* > let g:fuf_dir_exclude = '\v(^|[/\\])\.(hg|git|bzr)($|[/\\])' < 補完リストから除外したいアイテムの正規表現パターン。 *fuf-options-for-mrufile-mode* MRU-File モード用 ~ *g:fuf_mrufile_prompt* > let g:fuf_mrufile_prompt = '>MRU-File[]>' < プロンプト文字列。"[]" はインジケータに置換されます。 *g:fuf_mrufile_switchOrder* > let g:fuf_mrufile_switchOrder = 50 < 次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード には切り替えません。 *g:fuf_mrufile_exclude* > let g:fuf_mrufile_exclude = '\v\~$|\.(o|exe|dll|bak|orig|sw[po])$|^(\/\/|\\\\|\/mnt\/|\/media\/)' < 補完リストから除外したいアイテムの正規表現パターン。 *g:fuf_mrufile_maxItem* > let g:fuf_mrufile_maxItem = 200 < 保持するMRUアイテムの上限値。 *g:fuf_mrufile_maxItemDir* > let g:fuf_mrufile_maxItemDir = 50 < 保持するMRUアイテムの親ディレクトリ(周辺検索で使われる)の上限値。 *g:fuf_mrufile_keyExpand* > let g:fuf_mrufile_keyExpand = '' < 検索する範囲を広げるキー。 *fuf-options-for-mrucmd-mode* MRU-Cmd モード用 ~ *g:fuf_mrucmd_prompt* > let g:fuf_mrucmd_prompt = '>MRU-Cmd[]>' < プロンプト文字列。"[]" はインジケータに置換されます。 *g:fuf_mrucmd_switchOrder* > let g:fuf_mrucmd_switchOrder = 60 < 次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード には切り替えません。 *g:fuf_mrucmd_exclude* > let g:fuf_mrucmd_exclude = '^$' < 補完リストから除外したいアイテムの正規表現パターン。 *g:fuf_mrucmd_maxItem* > let g:fuf_mrucmd_maxItem = 200 < 保持するMRUアイテムの上限値。 *fuf-options-for-bookmarkfile-mode* Bookmark-File モード用 ~ *g:fuf_bookmarkfile_prompt* > let g:fuf_bookmarkfile_prompt = '>BookmarkFile[]>' < プロンプト文字列。"[]" はインジケータに置換されます。 *g:fuf_bookmarkfile_switchOrder* > let g:fuf_bookmarkfile_switchOrder = 70 < 次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード には切り替えません。 *g:fuf_bookmarkfile_searchRange* > let g:fuf_bookmarkfile_searchRange = 400 < ジャンプするとき、ブックマークした位置からこの行数の範囲内でブックマー クしたときのパターンとマッチする行を探します。 *g:fuf_bookmarkfile_keyDelete* > let g:fuf_bookmarkfile_keyDelete = '' < 選択したブックマークを削除するキー。 *fuf-options-for-bookmarkdir-mode* Bookmark-Dir モード用 ~ *g:fuf_bookmarkdir_prompt* > let g:fuf_bookmarkdir_prompt = '>BookmarkDir[]>' < プロンプト文字列。"[]" はインジケータに置換されます。 *g:fuf_bookmarkdir_switchOrder* > let g:fuf_bookmarkdir_switchOrder = 80 < 次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード には切り替えません。 *g:fuf_bookmarkdir_keyDelete* > let g:fuf_bookmarkdir_keyDelete = '' < 選択したブックマークを削除するキー。 *fuf-options-for-tag-mode* Tag モード用 ~ *g:fuf_tag_prompt* > let g:fuf_tag_prompt = '>Tag[]>' < プロンプト文字列。"[]" はインジケータに置換されます。 *g:fuf_tag_switchOrder* > let g:fuf_tag_switchOrder = 90 < 次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード には切り替えません。 *fuf-options-for-buffertag-mode* For Buffer-Tag モード用 ~ *g:fuf_buffertag_prompt* > let g:fuf_buffertag_prompt = '>Buffer-Tag[]>' < プロンプト文字列。"[]" はインジケータに置換されます。 *g:fuf_buffertag_switchOrder* > let g:fuf_buffertag_switchOrder = 100 < 次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード には切り替えません。 *g:fuf_buffertag_ctagsPath* > let g:fuf_buffertag_ctagsPath = 'ctags' < Ctagsの実行ファイルのパス *fuf-options-for-taggedfile-mode* Tagged-File モード用 ~ *g:fuf_taggedfile_prompt* > let g:fuf_taggedfile_prompt = '>Tagged-File[]>' < プロンプト文字列。"[]" はインジケータに置換されます。 *g:fuf_taggedfile_switchOrder* > let g:fuf_taggedfile_switchOrder = 110 < 次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード には切り替えません。 *fuf-options-for-jumplist-mode* Jump-List モード用 ~ *g:fuf_jumplist_prompt* > let g:fuf_jumplist_prompt = '>Jump-List[]>' < プロンプト文字列。"[]" はインジケータに置換されます。 *g:fuf_jumplist_switchOrder* > let g:fuf_jumplist_switchOrder = 120 < 次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード には切り替えません。 *fuf-options-for-changelist-mode* Change-List モード用 ~ *g:fuf_changelist_prompt* > let g:fuf_changelist_prompt = '>Change-List[]>' < プロンプト文字列。"[]" はインジケータに置換されます。 *g:fuf_changelist_switchOrder* > let g:fuf_changelist_switchOrder = 130 < 次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード には切り替えません。 *fuf-options-for-quickfix-mode* Quickfix モード用 ~ *g:fuf_quickfix_prompt* > let g:fuf_quickfix_prompt = '>Quickfix[]>' < プロンプト文字列。"[]" はインジケータに置換されます。 *g:fuf_quickfix_switchOrder* > let g:fuf_quickfix_switchOrder = 140 < 次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード には切り替えません。 *fuf-options-for-line-mode* Line モード用 ~ *g:fuf_line_prompt* > let g:fuf_line_prompt = '>Line[]>' < プロンプト文字列。"[]" はインジケータに置換されます。 *g:fuf_line_switchOrder* > let g:fuf_line_switchOrder = 150 < 次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード には切り替えません。 *fuf-options-for-help-mode* Help モード用 ~ *g:fuf_help_prompt* > let g:fuf_help_prompt = '>Help[]>' < プロンプト文字列。"[]" はインジケータに置換されます。 *g:fuf_help_switchOrder* > let g:fuf_help_switchOrder = 160 < 次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード には切り替えません。 ============================================================================== vimrc の例 *fuf-vimrc-example* > let g:fuf_modesDisable = [] let g:fuf_mrufile_maxItem = 400 let g:fuf_mrucmd_maxItem = 400 nnoremap sj :FufBuffer nnoremap sk :FufFileWithCurrentBufferDir nnoremap sK :FufFileWithFullCwd nnoremap s :FufFile nnoremap sl :FufCoverageFileChange nnoremap sL :FufCoverageFileChange nnoremap s :FufCoverageFileRegister nnoremap sd :FufDirWithCurrentBufferDir nnoremap sD :FufDirWithFullCwd nnoremap s :FufDir nnoremap sn :FufMruFile nnoremap sN :FufMruFileInCwd nnoremap sm :FufMruCmd nnoremap su :FufBookmarkFile nnoremap s :FufBookmarkFileAdd vnoremap s :FufBookmarkFileAddAsSelectedText nnoremap si :FufBookmarkDir nnoremap s :FufBookmarkDirAdd nnoremap st :FufTag nnoremap sT :FufTag! nnoremap s :FufTagWithCursorWord! nnoremap s, :FufBufferTag nnoremap s< :FufBufferTag! vnoremap s, :FufBufferTagWithSelectedText! vnoremap s< :FufBufferTagWithSelectedText nnoremap s} :FufBufferTagWithCursorWord! nnoremap s. :FufBufferTagAll nnoremap s> :FufBufferTagAll! vnoremap s. :FufBufferTagAllWithSelectedText! vnoremap s> :FufBufferTagAllWithSelectedText nnoremap s] :FufBufferTagAllWithCursorWord! nnoremap sg :FufTaggedFile nnoremap sG :FufTaggedFile! nnoremap so :FufJumpList nnoremap sp :FufChangeList nnoremap sq :FufQuickfix nnoremap sy :FufLine nnoremap sh :FufHelp nnoremap se :FufEditDataFile nnoremap sr :FufRenewCache < ============================================================================== あばうと *fuf-about* *fuf-contact* *fuf-author* 作者: Takeshi NISHIDA ライセンス: MIT Licence URL: http://www.vim.org/scripts/script.php?script_id=1984 http://bitbucket.org/ns9tks/vim-fuzzyfinder/ バグや要望など ~ こちらへどうぞ: http://bitbucket.org/ns9tks/vim-fuzzyfinder/issues/ ============================================================================== vim:tw=78:ts=8:ft=help:norl: