Commits

Takeshi NISHIDA  committed b6e9169

Added All-File mode

  • Participants
  • Parent commits 603a363

Comments (0)

Files changed (4)

File autoload/fuf/allfile.vim

+"=============================================================================
+" Copyright (c) 2007-2010 Takeshi NISHIDA
+"
+"=============================================================================
+" LOAD GUARD {{{1
+
+if !l9#guardScriptLoading(expand('<sfile>:p'), 702, 100)
+  finish
+endif
+
+" }}}1
+"=============================================================================
+" GLOBAL FUNCTIONS {{{1
+
+"
+function fuf#allfile#createHandler(base)
+  return a:base.concretize(copy(s:handler))
+endfunction
+
+"
+function fuf#allfile#getSwitchOrder()
+  return g:fuf_file_switchOrder
+endfunction
+
+"
+function fuf#allfile#renewCache()
+  let s:cache = {}
+endfunction
+
+"
+function fuf#allfile#requiresOnCommandPre()
+  return 0
+endfunction
+
+"
+function fuf#allfile#onInit()
+  call fuf#defineLaunchCommand('FufAllFile', s:MODE_NAME, '""')
+endfunction
+
+" }}}1
+"=============================================================================
+" LOCAL FUNCTIONS/VARIABLES {{{1
+
+let s:MODE_NAME = expand('<sfile>:t:r')
+
+"
+function s:enumItems()
+  let key = join([getcwd(), g:fuf_ignoreCase, g:fuf_allfile_exclude,
+        \         g:fuf_allfile_globPatterns], "\n")
+  if !exists('s:cache[key]')
+    let s:cache[key] = l9#concat(map(copy(g:fuf_allfile_globPatterns),
+          \                          'split(glob(v:val), "\n")'))
+    call filter(s:cache[key], 'filereadable(v:val)')
+    call map(s:cache[key], 'fuf#makePathItem(fnamemodify(v:val, ":~:."), "", 0)')
+    if len(g:fuf_allfile_exclude)
+      call filter(s:cache[key], 'v:val.word !~ g:fuf_allfile_exclude')
+    endif
+    call fuf#mapToSetSerialIndex(s:cache[key], 1)
+    call fuf#mapToSetAbbrWithSnippedWordAsPath(s:cache[key])
+  endif
+  return s:cache[key]
+endfunction
+
+"
+function s:enumNonCurrentItems(dir, bufNrPrev, cache)
+endfunction
+
+" }}}1
+"=============================================================================
+" s:handler {{{1
+
+let s:handler = {}
+
+"
+function s:handler.getModeName()
+  return s:MODE_NAME
+endfunction
+
+"
+function s:handler.getPrompt()
+  return fuf#formatPrompt(g:fuf_file_prompt, self.partialMatching)
+endfunction
+
+"
+function s:handler.getPreviewHeight()
+  return g:fuf_previewHeight
+endfunction
+
+"
+function s:handler.isOpenable(enteredPattern)
+  return 1
+endfunction
+
+"
+function s:handler.makePatternSet(patternBase)
+  return fuf#makePatternSet(a:patternBase, 's:interpretPrimaryPatternForPath',
+        \                   self.partialMatching)
+endfunction
+
+"
+function s:handler.makePreviewLines(word, count)
+  return fuf#makePreviewLinesForFile(a:word, a:count, self.getPreviewHeight())
+endfunction
+
+"
+function s:handler.getCompleteItems(patternPrimary)
+  return self.items
+endfunction
+
+"
+function s:handler.onOpen(word, mode)
+  call fuf#openFile(a:word, a:mode, g:fuf_reuseWindow)
+endfunction
+
+"
+function s:handler.onModeEnterPre()
+endfunction
+
+"
+function s:handler.onModeEnterPost()
+  " NOTE: Comparing filenames is faster than bufnr('^' . fname . '$')
+  let bufNamePrev = fnamemodify(bufname(self.bufNrPrev), ':~:.')
+  let self.items = s:enumItems()
+  call filter(self.items, '!empty(v:val) && v:val.word !=# bufNamePrev')
+endfunction
+
+"
+function s:handler.onModeLeavePost(opened)
+endfunction
+
+" }}}1
+"=============================================================================
+" vim: set fdm=marker:
          コマンド                  モード ~
         |:FufBuffer|       - Buffer モード (|fuf-buffer-mode|)
         |:FufFile|         - File モード (|fuf-file-mode|)
+        |:FufAllFile|      - All-File モード (|fuf-allfile-mode|)
         |:FufDir|          - Directory モード (|fuf-dir-mode|)
         |:FufMruFile|      - MRU-File モード (|fuf-mrufile-mode|)
         |:FufAroundMruFile|- Around-MRU-File モード (|fuf-aroundmrufile-mode|)
                                                                *fuf-file-mode*
 File モード ~
 
-このモードはファイルを検索して開くインターフェースを提供します。
+このモードはファイルツリーからファイルを検索して開くインターフェースを提供しま
+す。
+
+                                                            *fuf-allfile-mode*
+All-File モード ~
+
+このモードはあらかじめ設定した場所にある全ファイルからファイルを選択して開くイ
+ンターフェースを提供します。
+
+デフォルトではカレントディレクトリ以下の全ファイルを列挙します。
+|fuf#setOneTimeVariables()|と|g:fuf_allfile_globPatterns|を使って検索場所をカ
+スタマイズすることができます。
+
+
+.hと.cファイルだけ検索したい場合は、次のコマンドを使います:
+>
+        call fuf#setOneTimeVariables(['g:fuf_allfile_globPatterns', ['**/*.h', '**/*.c']])
+              \ | FufAllFile
+<
+または、デフォルトの検索場所に加えてホームディレクトリも検索したい場合:
+>
+        call fuf#setOneTimeVariables(['g:fuf_allfile_globPatterns', g:fuf_allfile_globPatterns + ['~/**/.*', '~/**/*']])
+              \ | FufAllFile
+<
+デフォルトの検索場所を変更したい場合は、|g:fuf_allfile_globPatterns|オプション
+を、|fuf#setOneTimeVariables()|を使わずに直接設定してください。
 
                                                                 *fuf-dir-mode*
 Directory モード ~
 
-このモードはディレクトリを検索してカレントディレクトリを変更するインターフェー
-スを提供します。
+このモードはファイルツリーからディレクトリを検索してカレントディレクトリを変更
+するインターフェースを提供します。
 
                                                             *fuf-mrufile-mode*
 MRU-File モード ~
 |fuf#setOneTimeVariables()|関数が役に立ちます。この関数は次のようにして使いま
 す:
 >
-        fuf#setOneTimeVariables(['g:fuf_ignoreCase', 0], ['&lines', 50])
+        call fuf#setOneTimeVariables(['g:fuf_ignoreCase', 0], ['&lines', 50])
 <
 この関数は 0 個以上の引数を取り、各々は変数名と値のペアです。指定されたオプシ
 ョンは次回 FuzzyFinder が起動したときに実際に設定され、終了するときに復元され
 <
         補完リストから除外したいアイテムの正規表現パターン。
 
+                                                *fuf-options-for-allfile-mode*
+All-File モード用 ~
+
+                                                     *g:fuf_allfile_prompt*  >
+  let g:fuf_allfile_prompt = '>AllFile[]>'
+<
+        プロンプト文字列。"[]" はインジケータに置換されます。
+
+                                                *g:fuf_allfile_switchOrder*  >
+  let g:fuf_allfile_switchOrder = 30
+<
+        次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード
+        には切り替えません。
+
+                                                    *g:fuf_allfile_exclude*  >
+  let g:fuf_allfile_exclude = '\v\~$|\.(o|exe|dll|bak|orig|swp)$|(^|[/\\])\.(hg|git|bzr)($|[/\\])'
+<
+        補完リストから除外したいアイテムの正規表現パターン。
+
+                                               *g:fuf_allfile_globPatterns*  >
+  let g:fuf_allfile_globPatterns = ['**/.*', '**/*']
+<
+        検索されるファイルパスを得るためのglobパターンのリスト。
+
                                                     *fuf-options-for-dir-mode*
 Directory モード用 ~
 
         プロンプト文字列。"[]" はインジケータに置換されます。
 
                                                     *g:fuf_dir_switchOrder*  >
-  let g:fuf_dir_switchOrder = 30
+  let g:fuf_dir_switchOrder = 40
 <
         次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード
         には切り替えません。
         プロンプト文字列。"[]" はインジケータに置換されます。
 
                                                 *g:fuf_mrufile_switchOrder*  >
-  let g:fuf_mrufile_switchOrder = 40
+  let g:fuf_mrufile_switchOrder = 50
 <
         次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード
         には切り替えません。
         プロンプト文字列。"[]" はインジケータに置換されます。
 
                                           *g:fuf_aroundmrufile_switchOrder*  >
-  let g:fuf_aroundmrufile_switchOrder = 50
+  let g:fuf_aroundmrufile_switchOrder = 60
 <
         次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード
         には切り替えません。
         プロンプト文字列。"[]" はインジケータに置換されます。
 
                                                  *g:fuf_mrucmd_switchOrder*  >
-  let g:fuf_mrucmd_switchOrder = 60
+  let g:fuf_mrucmd_switchOrder = 70
 <
         次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード
         には切り替えません。
         プロンプト文字列。"[]" はインジケータに置換されます。
 
                                                *g:fuf_bookmark_switchOrder*  >
-  let g:fuf_bookmark_switchOrder = 70
+  let g:fuf_bookmark_switchOrder = 80
 <
         次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード
         には切り替えません。
         プロンプト文字列。"[]" はインジケータに置換されます。
 
                                                     *g:fuf_tag_switchOrder*  >
-  let g:fuf_tag_switchOrder = 80
+  let g:fuf_tag_switchOrder = 90
 <
         次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード
         には切り替えません。
         プロンプト文字列。"[]" はインジケータに置換されます。
 
                                              *g:fuf_taggedfile_switchOrder*  >
-  let g:fuf_taggedfile_switchOrder = 90
+  let g:fuf_taggedfile_switchOrder = 100
 <
         次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード
         には切り替えません。
         プロンプト文字列。"[]" はインジケータに置換されます。
 
                                                *g:fuf_jumplist_switchOrder*  >
-  let g:fuf_jumplist_switchOrder = 100
+  let g:fuf_jumplist_switchOrder = 110
 <
         次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード
         には切り替えません。
         プロンプト文字列。"[]" はインジケータに置換されます。
 
                                              *g:fuf_changelist_switchOrder*  >
-  let g:fuf_changelist_switchOrder = 110
+  let g:fuf_changelist_switchOrder = 120
 <
         次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード
         には切り替えません。
         プロンプト文字列。"[]" はインジケータに置換されます。
 
                                              *g:fuf_quickfix_switchOrder*  >
-  let g:fuf_quickfix_switchOrder = 120
+  let g:fuf_quickfix_switchOrder = 130
 <
         次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード
         には切り替えません。
         プロンプト文字列。"[]" はインジケータに置換されます。
 
                                                    *g:fuf_line_switchOrder*  >
-  let g:fuf_line_switchOrder = 130
+  let g:fuf_line_switchOrder = 140
 <
         次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード
         には切り替えません。
         プロンプト文字列。"[]" はインジケータに置換されます。
 
                                                    *g:fuf_help_switchOrder*  >
-  let g:fuf_help_switchOrder = 140
+  let g:fuf_help_switchOrder = 150
 <
         次/前のモードに切り替えるときの、モードの順位です。負数ならこのモード
         には切り替えません。
 ==============================================================================
 USAGE                                                              *fuf-usage*
 
-You can launch FuzzyFinder by following commands:
+You can launch FuzzyFinder by the following commands:
 
          Command           Mode ~
         |:FufBuffer|       - Buffer mode (|fuf-buffer-mode|)
         |:FufFile|         - File mode (|fuf-file-mode|)
+        |:FufAllFile|      - All-File mode (|fuf-allfile-mode|)
         |:FufDir|          - Directory mode (|fuf-dir-mode|)
         |:FufMruFile|      - MRU-File mode (|fuf-mrufile-mode|)
         |:FufAroundMruFile|- Around-MRU-File mode (|fuf-aroundmrufile-mode|)
                                                                *fuf-file-mode*
 File mode ~
 
-This mode provides an interface to search a file and open it.
+This mode provides an interface to search a file tree for a file and open it.
+
+                                                            *fuf-allfile-mode*
+All-File mode ~
+
+This mode provides an interface to select a file from all files of preset
+locations and open it.
+
+By default, This mode lists all files under the current working directory
+recursively. You can customize the search location with
+|fuf#setOneTimeVariables()| and |g:fuf_allfile_globPatterns|.
+
+If you want to search only .h and .c files, use the following command:
+>
+        call fuf#setOneTimeVariables(['g:fuf_allfile_globPatterns', ['**/*.h', '**/*.c']])
+              \ | FufAllFile
+<
+Or, you also want to search your home directory in addition to the default
+locations:
+>
+        call fuf#setOneTimeVariables(['g:fuf_allfile_globPatterns', g:fuf_allfile_globPatterns + ['~/**/.*', '~/**/*']])
+              \ | FufAllFile
+<
+To change the default search location, set |g:fuf_allfile_globPatterns| option
+directly, without |fuf#setOneTimeVariables()|.
 
                                                                 *fuf-dir-mode*
 Directory mode ~
 
-This mode provides an interface to search a directory and change the current
-directory.
+This mode provides an interface to search a file tree for a directory and
+change the current directory.
 
                                                             *fuf-mrufile-mode*
 MRU-File mode ~
 |fuf#setOneTimeVariables()| function will be of help. This function is used as
 follows:
 >
-        fuf#setOneTimeVariables(['g:fuf_ignoreCase', 0], ['&lines', 50])
+        call fuf#setOneTimeVariables(['g:fuf_ignoreCase', 0], ['&lines', 50])
 <
 This function takes 0 or more arguments and each of them is a pair of a
 variable name and its value. Specified options will be set practically next
               \   ],
               \ }
 <
-and enter "doc:txt" in File mode, then FuzzyFinder searches by following
+and enter "doc:txt" in File mode, then FuzzyFinder searches by the following
 patterns:
 
         "~/project/**/doc/*t*x*t*"
         Is mostly the same as |:FufFile|, except that initial pattern is a
         path of directory current buffer is in.
 
+                                                                 *:FufAllFile*
+:FufAllFile[!] [{pattern}]
+        Launchs All-File mode.
+
+        If a command was executed with a ! modifier, it does partial matching
+        instead of fuzzy matching.
+
+        {pattern} will be inserted after launching FuzzyFinder.
+
                                                                      *:FufDir*
 :FufDir[!] [{pattern}]
         Launchs Directory mode.
         Regexp pattern for items which you want to exclude from completion
         list.
 
+                                                *fuf-options-for-allfile-mode*
+For All-File Mode ~
+
+                                                     *g:fuf_allfile_prompt*  >
+  let g:fuf_allfile_prompt = '>AllFile[]>'
+<
+        Prompt string. "[]" will be substituted with indicators.
+
+                                                *g:fuf_allfile_switchOrder*  >
+  let g:fuf_allfile_switchOrder = 30
+<
+        Number of order for switching to the next/previous mode. If negative
+        number, Fuzzyfinder never switches to this mode.
+
+                                                    *g:fuf_allfile_exclude*  >
+  let g:fuf_allfile_exclude = '\v\~$|\.(o|exe|dll|bak|orig|swp)$|(^|[/\\])\.(hg|git|bzr)($|[/\\])'
+<
+        Regexp pattern for items which you want to exclude from completion
+        list.
+
+                                               *g:fuf_allfile_globPatterns*  >
+  let g:fuf_allfile_globPatterns = ['**/.*', '**/*']
+<
+        List of glob patterns to get file paths to be searched.
+
+        See also: |glob()|
+
                                                     *fuf-options-for-dir-mode*
 For Directory Mode ~
 
         Prompt string. "[]" will be substituted with indicators.
 
                                                     *g:fuf_dir_switchOrder*  >
-  let g:fuf_dir_switchOrder = 30
+  let g:fuf_dir_switchOrder = 40
 <
         Number of order for switching to the next/previous mode. If negative
         number, Fuzzyfinder never switches to this mode.
         Prompt string. "[]" will be substituted with indicators.
 
                                                 *g:fuf_mrufile_switchOrder*  >
-  let g:fuf_mrufile_switchOrder = 40
+  let g:fuf_mrufile_switchOrder = 50
 <
         Number of order for switching to the next/previous mode. If negative
         number, Fuzzyfinder never switches to this mode.
         Prompt string. "[]" will be substituted with indicators.
 
                                           *g:fuf_aroundmrufile_switchOrder*  >
-  let g:fuf_aroundmrufile_switchOrder = 50
+  let g:fuf_aroundmrufile_switchOrder = 60
 <
         Number of order for switching to the next/previous mode. If negative
         number, Fuzzyfinder never switches to this mode.
         Prompt string. "[]" will be substituted with indicators.
 
                                                  *g:fuf_mrucmd_switchOrder*  >
-  let g:fuf_mrucmd_switchOrder = 60
+  let g:fuf_mrucmd_switchOrder = 70
 <
         Number of order for switching to the next/previous mode. If negative
         number, Fuzzyfinder never switches to this mode.
         Prompt string. "[]" will be substituted with indicators.
 
                                                *g:fuf_bookmark_switchOrder*  >
-  let g:fuf_bookmark_switchOrder = 70
+  let g:fuf_bookmark_switchOrder = 80
 <
         Number of order for switching to the next/previous mode. If negative
         number, Fuzzyfinder never switches to this mode.
         Prompt string. "[]" will be substituted with indicators.
 
                                                     *g:fuf_tag_switchOrder*  >
-  let g:fuf_tag_switchOrder = 80
+  let g:fuf_tag_switchOrder = 90
 <
         Number of order for switching to the next/previous mode. If negative
         number, Fuzzyfinder never switches to this mode.
         Prompt string. "[]" will be substituted with indicators.
 
                                              *g:fuf_taggedfile_switchOrder*  >
-  let g:fuf_taggedfile_switchOrder = 90
+  let g:fuf_taggedfile_switchOrder = 100
 <
         Number of order for switching to the next/previous mode. If negative
         number, Fuzzyfinder never switches to this mode.
         Prompt string. "[]" will be substituted with indicators.
 
                                                *g:fuf_jumplist_switchOrder*  >
-  let g:fuf_jumplist_switchOrder = 100
+  let g:fuf_jumplist_switchOrder = 110
 <
         Number of order for switching to the next/previous mode. If negative
         number, Fuzzyfinder never switches to this mode.
         Prompt string. "[]" will be substituted with indicators.
 
                                              *g:fuf_changelist_switchOrder*  >
-  let g:fuf_changelist_switchOrder = 110
+  let g:fuf_changelist_switchOrder = 120
 <
         Number of order for switching to the next/previous mode. If negative
         number, Fuzzyfinder never switches to this mode.
         Prompt string. "[]" will be substituted with indicators.
 
                                              *g:fuf_quickfix_switchOrder*  >
-  let g:fuf_quickfix_switchOrder = 120
+  let g:fuf_quickfix_switchOrder = 130
 <
         Number of order for switching to the next/previous mode. If negative
         number, Fuzzyfinder never switches to this mode.
         Prompt string. "[]" will be substituted with indicators.
 
                                                    *g:fuf_line_switchOrder*  >
-  let g:fuf_line_switchOrder = 130
+  let g:fuf_line_switchOrder = 140
 <
         Number of order for switching to the next/previous mode. If negative
         number, Fuzzyfinder never switches to this mode.
         Prompt string. "[]" will be substituted with indicators.
 
                                                    *g:fuf_help_switchOrder*  >
-  let g:fuf_help_switchOrder = 140
+  let g:fuf_help_switchOrder = 150
 <
         Number of order for switching to the next/previous mode. If negative
         number, Fuzzyfinder never switches to this mode.
 CHANGELOG                                                      *fuf-changelog*
 
 4.0: [TODO]
+  - Added All-File mode for users wanting something like TextMate's command-t.
   - Added Around-MRU-File mode.
   - Added new feature which is auto-preview and g:fuf_autoPreview option.
   - Added new feature which deletes selected buffer with FuzzyFinder and
     g:fuf_help_cache_dir options.
   - Added :FufEditDataFile command and removed :FufEditInfo command.
   - Added g:fuf_fuzzyRefining option.
-  - Fixed a bug that FuzzyFinder caused reseting window layout.
+  - Changed the default value of g:fuf_previewHeight to 0 in order to disable
   - Improved speed of changing buffers.
   - Improved the way to add modes.
-  - Removed g:fuf_smartBs option. Use <C-w> instead.
-  - Changed the default value of g:fuf_previewHeight to 0 in order to disable
     preview feature. There is an unfixable problem which is caused by a Vim's
     bug.
+  - Fixed a bug that FuzzyFinder caused reseting window layout.
+  - Removed g:fuf_smartBs option. Use <C-w> instead.
 
 3.5:
   - Added Line mode.

File plugin/fuf.vim

   call l9#defineVariableDefault('g:fuf_file_switchOrder', 20)
   call l9#defineVariableDefault('g:fuf_file_exclude'    , '\v\~$|\.(o|exe|dll|bak|orig|sw[po])$|(^|[/\\])\.(hg|git|bzr)($|[/\\])')
   "---------------------------------------------------------------------------
+  call l9#defineVariableDefault('g:fuf_allfile_prompt'     , '>AllFile[]>')
+  call l9#defineVariableDefault('g:fuf_allfile_switchOrder', 30)
+  call l9#defineVariableDefault('g:fuf_allfile_exclude'    , '\v\~$|\.(o|exe|dll|bak|orig|sw[po])$|(^|[/\\])\.(hg|git|bzr)($|[/\\])')
+  call l9#defineVariableDefault('g:fuf_allfile_globPatterns', ['**/.*', '**/*'])
+  "---------------------------------------------------------------------------
   call l9#defineVariableDefault('g:fuf_dir_prompt'     , '>Dir[]>')
-  call l9#defineVariableDefault('g:fuf_dir_switchOrder', 30)
+  call l9#defineVariableDefault('g:fuf_dir_switchOrder', 40)
   call l9#defineVariableDefault('g:fuf_dir_exclude'    , '\v(^|[/\\])\.(hg|git|bzr)($|[/\\])')
   "---------------------------------------------------------------------------
   call l9#defineVariableDefault('g:fuf_mrufile_prompt'     , '>MRU-File[]>')
-  call l9#defineVariableDefault('g:fuf_mrufile_switchOrder', 40)
+  call l9#defineVariableDefault('g:fuf_mrufile_switchOrder', 50)
   call l9#defineVariableDefault('g:fuf_mrufile_exclude'    , '\v\~$|\.(bak|orig|sw[po])$|^(\/\/|\\\\|\/mnt\/|\/media\/)')
   call l9#defineVariableDefault('g:fuf_mrufile_maxItem'    , 200)
   "---------------------------------------------------------------------------
   call l9#defineVariableDefault('g:fuf_aroundmrufile_prompt'     , '>Around-MRU-File[]>')
-  call l9#defineVariableDefault('g:fuf_aroundmrufile_switchOrder', 50)
+  call l9#defineVariableDefault('g:fuf_aroundmrufile_switchOrder', 60)
   call l9#defineVariableDefault('g:fuf_aroundmrufile_exclude'    , '\v\~$|\.(o|exe|dll|bak|orig|sw[po])$|(^|[/\\])\.(hg|git|bzr)($|[/\\])|^(\/\/|\\\\|\/mnt\/|\/media\/)')
   call l9#defineVariableDefault('g:fuf_aroundmrufile_maxDir'    , 100)
   "---------------------------------------------------------------------------
   call l9#defineVariableDefault('g:fuf_mrucmd_prompt'     , '>MRU-Cmd[]>')
-  call l9#defineVariableDefault('g:fuf_mrucmd_switchOrder', 60)
+  call l9#defineVariableDefault('g:fuf_mrucmd_switchOrder', 70)
   call l9#defineVariableDefault('g:fuf_mrucmd_exclude'    , '^$')
   call l9#defineVariableDefault('g:fuf_mrucmd_maxItem'    , 200)
   "---------------------------------------------------------------------------
   call l9#defineVariableDefault('g:fuf_bookmark_prompt'     , '>Bookmark[]>')
-  call l9#defineVariableDefault('g:fuf_bookmark_switchOrder', 70)
+  call l9#defineVariableDefault('g:fuf_bookmark_switchOrder', 80)
   call l9#defineVariableDefault('g:fuf_bookmark_searchRange', 400)
   call l9#defineVariableDefault('g:fuf_bookmark_keyDelete'  , '<C-]>')
   "---------------------------------------------------------------------------
   call l9#defineVariableDefault('g:fuf_tag_prompt'     , '>Tag[]>')
-  call l9#defineVariableDefault('g:fuf_tag_switchOrder', 80)
+  call l9#defineVariableDefault('g:fuf_tag_switchOrder', 90)
   "---------------------------------------------------------------------------
   call l9#defineVariableDefault('g:fuf_taggedfile_prompt'     , '>Tagged-File[]>')
-  call l9#defineVariableDefault('g:fuf_taggedfile_switchOrder', 90)
+  call l9#defineVariableDefault('g:fuf_taggedfile_switchOrder', 100)
   "---------------------------------------------------------------------------
   call l9#defineVariableDefault('g:fuf_jumplist_prompt'     , '>Jump-List[]>')
-  call l9#defineVariableDefault('g:fuf_jumplist_switchOrder', 100)
+  call l9#defineVariableDefault('g:fuf_jumplist_switchOrder', 110)
   "---------------------------------------------------------------------------
   call l9#defineVariableDefault('g:fuf_changelist_prompt'     , '>Change-List[]>')
-  call l9#defineVariableDefault('g:fuf_changelist_switchOrder', 110)
+  call l9#defineVariableDefault('g:fuf_changelist_switchOrder', 120)
   "---------------------------------------------------------------------------
   call l9#defineVariableDefault('g:fuf_quickfix_prompt'     , '>Quickfix[]>')
-  call l9#defineVariableDefault('g:fuf_quickfix_switchOrder', 120)
+  call l9#defineVariableDefault('g:fuf_quickfix_switchOrder', 130)
   "---------------------------------------------------------------------------
   call l9#defineVariableDefault('g:fuf_line_prompt'     , '>Line[]>')
-  call l9#defineVariableDefault('g:fuf_line_switchOrder', 130)
+  call l9#defineVariableDefault('g:fuf_line_switchOrder', 140)
   "---------------------------------------------------------------------------
   call l9#defineVariableDefault('g:fuf_help_prompt'     , '>Help[]>')
-  call l9#defineVariableDefault('g:fuf_help_switchOrder', 140)
+  call l9#defineVariableDefault('g:fuf_help_switchOrder', 150)
   "---------------------------------------------------------------------------
   command! -bang -narg=0 FufEditDataFile call fuf#editDataFile()
   command! -bang -narg=0 FufRenewCache   call s:renewCachesOfAllModes()
   "---------------------------------------------------------------------------
   call fuf#addMode('buffer')
   call fuf#addMode('file')
+  call fuf#addMode('allfile')
   call fuf#addMode('dir')
   call fuf#addMode('mrufile')
   call fuf#addMode('aroundmrufile')