OJ Reeves avatar OJ Reeves committed a68868c

Refreshed

Comments (0)

Files changed (166)

-[user]
-	name = OJ
-	email = oj@buffered.io
-[core]
-	editor = vim
+[user]
+	name = OJ
+	email = oj@buffered.io
+[core]
+	editor = vim
+[merge]
+	tool = diffmerge
+  stat = true
+[mergetool "diffmerge"]
+  cmd = diffmerge --merge --result=\"$MERGED\" -t1="Local Version" -t2=\"$MERGED\" -t3"Other Version" --caption=\"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\"
+	trustExitCode = true
+	keepBackup = false
+[diff]
+	tool = diffmerge
+  stat = true
+[difftool]
+  prompt = false
+[difftool "diffmerge"]
+	cmd = diffmerge \"$LOCAL\" \"$REMOTE\"

hg/.hg-map-cmdline.nlog

-changeset = 'changeset: \033[0;33m{rev}\033[0m:\033[0;33m{node|short}\033[0m{branches}{tags}\nauthor:    {author}\ndate:      {date|rfc822date} ({date|age})\nsummary:   {desc|firstline|strip}\n\n{file_mods}{file_adds}{file_dels}\n\n'
-
-changeset_verbose = 'changeset: \033[0;33m{rev}\033[0m:\033[0;33m{node|short}\033[0m{branches}{tags}\nauthor:    {author}\ndate:      {date|rfc822date} ({date|age})\n\n{desc|fill76}\n\n{file_mods}{file_adds}{file_dels}\n\n'
-
-start_file_adds = ''
-file_add = '\033[0;32mA {file_add}\033[0m\n'
-end_file_adds = ''
-
-start_file_dels = ''
-file_del = '\033[0;31mR {file_del}\033[0m\n'
-end_file_dels = ''
-
-start_file_mods = ''
-file_mod = '\033[0;36mM {file_mod}\033[0m\n'
-end_file_mods = ''
-
-start_branches = ' '
-branch = '\033[0;35m{branch}\033[0m'
-
-start_tags = ' '
-tag = '\033[0;33m{tag}\033[0m, '
-last_tag = '\033[0;33m{tag}\033[0m'

hg/.hg-map-cmdline.sglog

-changeset = '\033[0;33m{rev}\033[0m {author}{branches}{tags}\n {desc|firstline|fill68|strip}\n\n'
-
-changeset_verbose = '\033[0;33m{rev}\033[0m:\033[0;33m{node|short}\033[0m {desc|firstline|fill68|strip}{branches}{tags}\n\033[1;30m({date|age} by {author|person})\033[0m\n\n'
-
-start_branches = ' '
-branch = '\033[0;35m{branch}\033[0m'
-
-start_tags = ' '
-tag = '\033[0;33m{tag}\033[0m, '
-last_tag = '\033[0;33m{tag}\033[0m'

hg/.hg-map-cmdline.slog

-changeset = '\033[0;33m{rev}\033[0m{branches} {desc|firstline|strip} \033[1;30m({date|age} by {author|person})\033[0m\n'
-
-changeset_quiet = '\033[0;33m{rev}\033[0m\n'
-
-changeset_verbose = '\033[0;33m{rev}\033[0m:\033[0;33m{node|short}\033[0m{branches} {desc|firstline|strip} \033[1;30m({date|age} by {author|person})\033[0m{tags}\n'
-
-start_branches = ' '
-branch = '\033[0;35m{branch}\033[0m'
-
-start_tags = ' '
-tag = '\033[0;33m{tag}\033[0m, '
-last_tag = '\033[0;33m{tag}\033[0m'

hg/.hgrc

-[ui]
-username = OJ Reeves <oj@buffered.io>
-editor = vim
-merge = diffmerge
-
-[merge-tools]
-diffmerge.executable = /usr/bin/diffmerge
-diffmerge.binary = False
-diffmerge.args = --result=$output -t1="Local Version" -t2=$output -t3="Other Version" --caption=$output  $local $base $other
-diffmerge.symlinks = False
-diffmerge.gui = True
-diffmerge.premerge = True
-
-[extdiff]
-cmd.diffmerge = /usr/bin/diffmerge
-
-[defaults]
-addremove = -s 100
-glog = -l10 --style /home/oj/.hg-map-cmdline.sglog
-log = -l5 --style /home/oj/.hg-map-cmdline.nlog
-
-[extensions]
-hgext.extdiff =
-hgext.patchbomb =
-hgext.convert =
-hgext.bookmarks =
-hgext.mq =
-hgext.graphlog =
-hgext.purge =
-hgext.color =
-prompt = /home/oj/code/hg-prompt/prompt.py
-
-[diff]
-git=1
-
-[alias]
-qstatus = status --rev -2:.
-bpush = push --rev 
-dm = diffmerge
-. = glog -l10 --style /home/oj/.hg-map-cmdline.sglog
-bu = update -C
-s = status
-
-[color]
-status.modified = yellow
-
-[web]
-cacerts = /etc/ssl/certs/ca-certificates.crt

hg/linux/.hg-map-cmdline.nlog

+changeset = 'changeset: \033[0;33m{rev}\033[0m:\033[0;33m{node|short}\033[0m{branches}{tags}\nauthor:    {author}\ndate:      {date|rfc822date} ({date|age})\nsummary:   {desc|firstline|strip}\n\n{file_mods}{file_adds}{file_dels}\n\n'
+
+changeset_verbose = 'changeset: \033[0;33m{rev}\033[0m:\033[0;33m{node|short}\033[0m{branches}{tags}\nauthor:    {author}\ndate:      {date|rfc822date} ({date|age})\n\n{desc|fill76}\n\n{file_mods}{file_adds}{file_dels}\n\n'
+
+start_file_adds = ''
+file_add = '\033[0;32mA {file_add}\033[0m\n'
+end_file_adds = ''
+
+start_file_dels = ''
+file_del = '\033[0;31mR {file_del}\033[0m\n'
+end_file_dels = ''
+
+start_file_mods = ''
+file_mod = '\033[0;36mM {file_mod}\033[0m\n'
+end_file_mods = ''
+
+start_branches = ' '
+branch = '\033[0;35m{branch}\033[0m'
+
+start_tags = ' '
+tag = '\033[0;33m{tag}\033[0m, '
+last_tag = '\033[0;33m{tag}\033[0m'

hg/linux/.hg-map-cmdline.sglog

+changeset = '\033[0;33m{rev}\033[0m {author}{branches}{tags}\n {desc|firstline|fill68|strip}\n\n'
+
+changeset_verbose = '\033[0;33m{rev}\033[0m:\033[0;33m{node|short}\033[0m {desc|firstline|fill68|strip}{branches}{tags}\n\033[1;30m({date|age} by {author|person})\033[0m\n\n'
+
+start_branches = ' '
+branch = '\033[0;35m{branch}\033[0m'
+
+start_tags = ' '
+tag = '\033[0;33m{tag}\033[0m, '
+last_tag = '\033[0;33m{tag}\033[0m'

hg/linux/.hg-map-cmdline.slog

+changeset = '\033[0;33m{rev}\033[0m{branches} {desc|firstline|strip} \033[1;30m({date|age} by {author|person})\033[0m\n'
+
+changeset_quiet = '\033[0;33m{rev}\033[0m\n'
+
+changeset_verbose = '\033[0;33m{rev}\033[0m:\033[0;33m{node|short}\033[0m{branches} {desc|firstline|strip} \033[1;30m({date|age} by {author|person})\033[0m{tags}\n'
+
+start_branches = ' '
+branch = '\033[0;35m{branch}\033[0m'
+
+start_tags = ' '
+tag = '\033[0;33m{tag}\033[0m, '
+last_tag = '\033[0;33m{tag}\033[0m'
+[ui]
+username = OJ Reeves <oj@buffered.io>
+editor = vim
+merge = diffmerge
+
+[merge-tools]
+diffmerge.executable = /usr/bin/diffmerge
+diffmerge.binary = False
+diffmerge.args = --result=$output -t1="Local Version" -t2=$output -t3="Other Version" --caption=$output  $local $base $other
+diffmerge.symlinks = False
+diffmerge.gui = True
+diffmerge.premerge = True
+
+[extdiff]
+cmd.diffmerge = /usr/bin/diffmerge
+
+[defaults]
+addremove = -s 100
+glog = -l10 --style /home/oj/.hg-map-cmdline.sglog
+log = -l5 --style /home/oj/.hg-map-cmdline.nlog
+
+[extensions]
+hgext.extdiff =
+hgext.patchbomb =
+hgext.convert =
+hgext.bookmarks =
+hgext.mq =
+hgext.graphlog =
+hgext.purge =
+hgext.color =
+prompt = /home/oj/code/hg-prompt/prompt.py
+
+[diff]
+git=1
+
+[alias]
+qstatus = status --rev -2:.
+bpush = push --rev 
+dm = diffmerge
+. = glog -l10 --style /home/oj/.hg-map-cmdline.sglog
+bu = update -C
+s = status
+
+[color]
+status.modified = yellow
+
+[web]
+cacerts = /etc/ssl/certs/ca-certificates.crt
+[ui]
+username = OJ Reeves <oj@buffered.io>
+editor = vim
+merge = diffmerge
+ssh = plink -ssh -i "C:/Users/OJ/id_rsa.ppk" -C -agent
+#ignore = C:/Users/OJ/.hgignore
+
+[merge-tools]
+diffmerge.binary = False
+diffmerge.args = --result=$output -t1="Local Version" -t2=$output -t3="Other Version" --caption=$output  $local $base $other
+diffmerge.symlinks = False
+diffmerge.gui = True
+diffmerge.premerge = True
+
+[defaults]
+fetch = -m "Merged with the mainline"
+addremove = -s 80
+glog = -l10 --template 'changeset:   {rev}:{node|short} \032 {tags} \033 \032 {branches} \033\nauthor:      {author}\nsummary:     {desc|firstline|fill68|tabindent|tabindent}\n\n'
+#glog = -l10 --template 'changeset:   {rev}:{node|short} \032 {tags} \033 \032 {branches} \033\nsummary:     {desc|firstline|fill68|tabindent|tabindent}\n\n'
+#glog = -l10 --template 'changeset:   {rev}:{node|short} \033[33;40m{tags}\033[37;40m \033[35;40m{branches}\033[37;40m\nsummary:     {desc|firstline|fill68|tabindent|tabindent}\n\n'
+
+[extensions]
+hgext.extdiff =
+hgext.patchbomb =
+hgext.convert =
+hgext.bookmarks =
+hgext.mq =
+hgext.graphlog =
+hgext.purge =
+hgext.rebase =
+hgext.color =
+hgext.fetch =
+hgext.churn =
+hgext.children =
+hggit = C:/code/hg-git/hggit
+
+#paste = C:/code/hg-paste/paste.py
+#wincolor = C:/code/wincolor/wincolor.py
+
+[extdiff]
+# add a new command which calls diffmerge
+cmd.dm = diffmerge
+
+[diff]
+git=1
+
+[alias]
+qstatus = status --rev -2:.
+s = status
+. = glog -l 5
+#slog = log --style=C:/code/mercurial-cli-templates/map-cmdline.slog
+

vim/.gvimrc

-colorscheme digerati
-
-set ts=2
-set sw=2
-set expandtab
-set guioptions-=m
-set guioptions-=T
-set scrolloff=5
-set number
-set formatoptions=l
-set smarttab
-set wildmenu
-set wildmode=list:longest,full
-set foldmethod=syntax
-set foldlevel=99
-set lbr
-set showmatch
-set hlsearch
-set incsearch
-set ruler
-set lines=40 columns=90
-set wmh=0
-
-" spelling stuff
-map <F6> <Esc>:setlocal spell spelllang=en_au<CR>
-map <F7> <Esc>:setlocal nospell<CR>
-highlight clear SpellBad
-highlight SpellBad term=standout ctermfg=1 term=underline cterm=underline
-highlight clear SpellCap
-highlight SpellCap term=underline cterm=underline
-highlight clear SpellRare
-highlight SpellRare term=underline cterm=underline
-highlight clear SpellLocal
-highlight SpellLocal term=underline cterm=underline
-
-" don't show these files
-set wildignore=.svn,.git,.hg,*.o,*.a,*.class,*.mo,*.la,*.so,*.obj,*.swp,*~,*.*~
-
-" switch buffers without writing to disk
-set hidden
-
-" pattern matching
-set ignorecase
-set smartcase
-
-" terminal title
-set title
-
-" Intuitive backspacing in insert mode
-set backspace=indent,eol,start
-
-" longer history
-set history=1000
-
-" extended matching for %
-runtime macros/matchit.vim
-
-" remap the leader
-let mapleader=","
-
-syntax on
-filetype on
-filetype plugin on
-filetype indent on
-
-" get rid of annoying prompts
-set shortmess=atI
-
-" use [RO] for [readonly] to save space
-set shortmess+=r
-
-" use confirm instead of aborting the action
-set confirm
-
-" movement between window splits
-:nmap <silent> <A-k> :wincmd k<CR>
-:nmap <silent> <A-j> :wincmd j<CR>
-:nmap <silent> <A-h> :wincmd h<CR>
-:nmap <silent> <A-l> :wincmd l<CR>
-
-" search/replace word under cursor
-nnoremap <C-S> :,$s/\<<C-R><C-W>\>/
-"
-" turn off that fucking bell
-set noerrorbells
-
-" hide the mouse while doing stuff
-set mousehide
-
-" simple hex editing
-:map <Leader>hon :%!xxd<CR>
-:map <Leader>hoff :%!xxd -r<CR>
-
-" make escape ditch the highlight as well
-":nnoremap <esc> <esc>:nohl<return><esc>
-
-" set the working dir to the dir of the current file
-"set autochdir
-
-" shortcut for changing syntax
-:command! -nargs=1 -complete=option Syn set ft=<args>
-
-" buffer navigation
-:nmap <C-S-tab> :bprev<CR>
-:nmap <C-tab> :bnext<CR>
-:map <C-S-tab> :bprev<CR>
-:map <C-tab> :bnext<CR>
-:imap <C-S-tab> <ESC>:bprev<CR>i
-:imap <C-tab> <ESC>:bnext<CR>i
-
-" nerdtree stuff
-:map <F2> :NERDTreeToggle<CR>
-
-" haskell related stuff
-au Bufenter *.hs compiler ghc
-let g:haddock_browser = "/usr/bin/google-chrome"

vim/.vim/.VimballRecord

-haskellmode-20090430.vba: call delete('/home/oj/.vim/compiler/ghc.vim')|call delete('/home/oj/.vim/ftplugin/haskell.vim')|call delete('/home/oj/.vim/ftplugin/haskell_doc.vim')|call delete('/home/oj/.vim/ftplugin/haskell_hpaste.vim')|call delete('/home/oj/.vim/autoload/haskellmode.vim')|call delete('/home/oj/.vim/doc/haskellmode.txt')

vim/.vim/.netrwhist

-let g:netrw_dirhistmax  =10
-let g:netrw_dirhist_cnt =1
-let g:netrw_dirhist_1='/home/oj/blog/riak'

vim/.vim/autoload/haskellmode.vim

-"
-" utility functions for haskellmode plugins
-"
-" (Claus Reinke; last modified: 23/04/2009)
-" 
-" part of haskell plugins: http://projects.haskell.org/haskellmode-vim
-" please send patches to <claus.reinke@talk21.com>
-
-
-
-" find start/extent of name/symbol under cursor;
-" return start, symbolic flag, qualifier, unqualified id
-" (this is used in both haskell_doc.vim and in GHC.vim)
-function! haskellmode#GetNameSymbol(line,col,off)
-  let name    = "[a-zA-Z0-9_']"
-  let symbol  = "[-!#$%&\*\+/<=>\?@\\^|~:.]"
-  "let [line]  = getbufline(a:buf,a:lnum)
-  let line    = a:line
-
-  " find the beginning of unqualified id or qualified id component 
-  let start   = (a:col - 1) + a:off
-  if line[start] =~ name
-    let pattern = name
-  elseif line[start] =~ symbol
-    let pattern = symbol
-  else
-    return []
-  endif
-  while start > 0 && line[start - 1] =~ pattern
-    let start -= 1
-  endwhile
-  let id    = matchstr(line[start :],pattern.'*')
-  " call confirm(id)
-
-  " expand id to left and right, to get full id
-  let idPos = id[0] == '.' ? start+2 : start+1
-  let posA  = match(line,'\<\(\([A-Z]'.name.'*\.\)\+\)\%'.idPos.'c')
-  let start = posA>-1 ? posA+1 : idPos
-  let posB  = matchend(line,'\%'.idPos.'c\(\([A-Z]'.name.'*\.\)*\)\('.name.'\+\|'.symbol.'\+\)')
-  let end   = posB>-1 ? posB : idPos
-
-  " special case: symbolic ids starting with .
-  if id[0]=='.' && posA==-1 
-    let start = idPos-1
-    let end   = posB==-1 ? start : end
-  endif
-
-  " classify full id and split into qualifier and unqualified id
-  let fullid   = line[ (start>1 ? start-1 : 0) : (end-1) ]
-  let symbolic = fullid[-1:-1] =~ symbol  " might also be incomplete qualified id ending in .
-  let qualPos  = matchend(fullid, '\([A-Z]'.name.'*\.\)\+')
-  let qualifier = qualPos>-1 ? fullid[ 0 : (qualPos-2) ] : ''
-  let unqualId  = qualPos>-1 ? fullid[ qualPos : -1 ] : fullid
-  " call confirm(start.'/'.end.'['.symbolic.']:'.qualifier.' '.unqualId)
-
-  return [start,symbolic,qualifier,unqualId]
-endfunction
-
-function! haskellmode#GatherImports()
-  let imports={0:{},1:{}}
-  let i=1
-  while i<=line('$')
-    let res = haskellmode#GatherImport(i)
-    if !empty(res)
-      let [i,import] = res
-      let prefixPat = '^import\s*\(qualified\)\?\s\+'
-      let modulePat = '\([A-Z][a-zA-Z0-9_''.]*\)'
-      let asPat     = '\(\s\+as\s\+'.modulePat.'\)\?'
-      let hidingPat = '\(\s\+hiding\s*\((.*)\)\)\?'
-      let listPat   = '\(\s*\((.*)\)\)\?'
-      let importPat = prefixPat.modulePat.asPat.hidingPat.listPat ".'\s*$'
-
-      let ml = matchlist(import,importPat)
-      if ml!=[]
-        let [_,qualified,module,_,as,_,hiding,_,explicit;x] = ml
-        let what = as=='' ? module : as
-        let hidings   = split(hiding[1:-2],',')
-        let explicits = split(explicit[1:-2],',')
-        let empty = {'lines':[],'hiding':hidings,'explicit':[],'modules':[]}
-        let entry = has_key(imports[1],what) ? imports[1][what] : deepcopy(empty)
-        let imports[1][what] = haskellmode#MergeImport(deepcopy(entry),i,hidings,explicits,module)
-        if !(qualified=='qualified')
-          let imports[0][what] = haskellmode#MergeImport(deepcopy(entry),i,hidings,explicits,module)
-        endif
-      else
-        echoerr "haskellmode#GatherImports doesn't understand: ".import
-      endif
-    endif
-    let i+=1
-  endwhile
-  if !has_key(imports[1],'Prelude') 
-    let imports[0]['Prelude'] = {'lines':[],'hiding':[],'explicit':[],'modules':[]}
-    let imports[1]['Prelude'] = {'lines':[],'hiding':[],'explicit':[],'modules':[]}
-  endif
-  return imports
-endfunction
-
-function! haskellmode#ListElem(list,elem)
-  for e in a:list | if e==a:elem | return 1 | endif | endfor
-  return 0
-endfunction
-
-function! haskellmode#ListIntersect(list1,list2)
-  let l = []
-  for e in a:list1 | if index(a:list2,e)!=-1 | let l += [e] | endif | endfor
-  return l
-endfunction
-
-function! haskellmode#ListUnion(list1,list2)
-  let l = []
-  for e in a:list2 | if index(a:list1,e)==-1 | let l += [e] | endif | endfor
-  return a:list1 + l
-endfunction
-
-function! haskellmode#ListWithout(list1,list2)
-  let l = []
-  for e in a:list1 | if index(a:list2,e)==-1 | let l += [e] | endif | endfor
-  return l
-endfunction
-
-function! haskellmode#MergeImport(entry,line,hiding,explicit,module)
-  let lines    = a:entry['lines'] + [ a:line ]
-  let hiding   = a:explicit==[] ? haskellmode#ListIntersect(a:entry['hiding'], a:hiding) 
-                              \ : haskellmode#ListWithout(a:entry['hiding'],a:explicit)
-  let explicit = haskellmode#ListUnion(a:entry['explicit'], a:explicit)
-  let modules  = haskellmode#ListUnion(a:entry['modules'], [ a:module ])
-  return {'lines':lines,'hiding':hiding,'explicit':explicit,'modules':modules}
-endfunction
-
-" collect lines belonging to a single import statement;
-" return number of last line and collected import statement
-" (assume opening parenthesis, if any, is on the first line)
-function! haskellmode#GatherImport(lineno)
-  let lineno = a:lineno
-  let import = getline(lineno)
-  if !(import=~'^import\s') | return [] | endif
-  let open  = strlen(substitute(import,'[^(]','','g'))
-  let close = strlen(substitute(import,'[^)]','','g'))
-  while open!=close
-    let lineno += 1
-    let linecont = getline(lineno)
-    let open  += strlen(substitute(linecont,'[^(]','','g'))
-    let close += strlen(substitute(linecont,'[^)]','','g'))
-    let import .= linecont
-  endwhile
-  return [lineno,import]
-endfunction
-
-function! haskellmode#UrlEncode(string)
-  let pat  = '\([^[:alnum:]]\)'
-  let code = '\=printf("%%%02X",char2nr(submatch(1)))'
-  let url  = substitute(a:string,pat,code,'g')
-  return url
-endfunction
-

vim/.vim/colors/digerati.vim

-" Maintainer:	Henrique C. Alves (hcarvalhoalves@gmail.com)
-" Version:      1.0
-" Last Change:  October 05 2008
-
-set background=dark
-
-hi clear
-
-if exists("syntax_on")
-    syntax reset
-endif
-
-let colors_name = "digerati"
-
-" Vim >= 7.0 specific colors
-if version >= 700
-  hi CursorLine guibg=#4f4f4f
-  hi CursorColumn guibg=#2d2d2d
-  hi MatchParen guifg=#ffffff guibg=#4f4f4f gui=bold
-  hi Pmenu 		guifg=#404040 guibg=#dcdcdc
-  hi PmenuSel 	guifg=#ffffff guibg=#93b5bf
-endif
-
-" General colors
-hi Cursor 		guifg=NONE    guibg=#909090 gui=none
-hi Normal 		guifg=#f0f0f0 guibg=#444444 gui=none
-hi NonText 		guifg=#a0a0a0 guibg=#303030 gui=none
-hi LineNr 		guifg=#a0a0a0 guibg=#303030 gui=none
-hi StatusLine 	guifg=#444444 guibg=#e0e0e0 gui=italic
-hi StatusLineNC guifg=#303030 guibg=#606060 gui=none
-hi VertSplit 	guifg=#444444 guibg=#444444 gui=none
-hi Folded 		guibg=#384048 guifg=#a0a8b0 gui=none
-hi Title		guifg=#ffffff guibg=NONE	gui=bold
-hi Visual		guifg=#ffffff guibg=#b8b89f gui=none
-hi SpecialKey	guifg=#808080 guibg=#343434 gui=none
-
-" Syntax highlighting
-hi Comment 		guifg=#808080 gui=italic
-hi Todo 		guifg=#8f8f8f gui=italic
-hi Boolean      guifg=#cdff00 gui=none
-hi String 		guifg=#cdff00 gui=italic
-hi Identifier 	guifg=#cdff00 gui=none
-hi Function 	guifg=#ffffff gui=bold
-hi Type 		guifg=#77b4c7 gui=none
-hi Statement 	guifg=#77b4c7 gui=none
-hi Keyword		guifg=#ff3b77 gui=none
-hi Constant 	guifg=#ff3b77 gui=none
-hi Number		guifg=#ff3b77 gui=none
-hi Special		guifg=#ff3b77 gui=none
-hi PreProc 		guifg=#b8b89f gui=none
-hi Todo         guifg=NONE guibg=#ff3b77 gui=italic
-
-" Code-specific colors
-hi pythonOperator guifg=#77b4c7 gui=none
-hi htmlEndTag guifg=#ffffff gui=none 
-hi htmlLink guifg=#ff3b77 gui=underline

vim/.vim/compiler/ghc.vim

-
-" Vim Compiler File
-" Compiler:	GHC
-" Maintainer:	Claus Reinke <claus.reinke@talk21.com>
-" Last Change:	30/04/2009
-"
-" part of haskell plugins: http://projects.haskell.org/haskellmode-vim
-
-" ------------------------------ paths & quickfix settings first
-"
-
-if exists("current_compiler") && current_compiler == "ghc"
-  finish
-endif
-let current_compiler = "ghc"
-
-let s:scriptname = "ghc.vim"
-
-if (!exists("g:ghc") || !executable(g:ghc)) 
-  if !executable('ghc') 
-    echoerr s:scriptname.": can't find ghc. please set g:ghc, or extend $PATH"
-    finish
-  else
-    let g:ghc = 'ghc'
-  endif
-endif    
-let ghc_version = substitute(system(g:ghc . ' --numeric-version'),'\n','','')
-if (!exists("b:ghc_staticoptions"))
-  let b:ghc_staticoptions = ''
-endif
-
-" set makeprg (for quickfix mode) 
-execute 'setlocal makeprg=' . g:ghc . '\ ' . escape(b:ghc_staticoptions,' ') .'\ -e\ :q\ %'
-"execute 'setlocal makeprg=' . g:ghc .'\ -e\ :q\ %'
-"execute 'setlocal makeprg=' . g:ghc .'\ --make\ %'
-
-" quickfix mode: 
-" fetch file/line-info from error message
-" TODO: how to distinguish multiline errors from warnings?
-"       (both have the same header, and errors have no common id-tag)
-"       how to get rid of first empty message in result list?
-setlocal errorformat=
-                    \%-Z\ %#,
-                    \%W%f:%l:%c:\ Warning:\ %m,
-                    \%E%f:%l:%c:\ %m,
-                    \%E%>%f:%l:%c:,
-                    \%+C\ \ %#%m,
-                    \%W%>%f:%l:%c:,
-                    \%+C\ \ %#%tarning:\ %m,
-
-" oh, wouldn't you guess it - ghc reports (partially) to stderr..
-setlocal shellpipe=2>
-
-" ------------------------- but ghc can do a lot more for us..
-"
-
-" allow map leader override
-if !exists("maplocalleader")
-  let maplocalleader='_'
-endif
-
-" initialize map of identifiers to their types
-" associate type map updates to changedtick
-if !exists("b:ghc_types")
-  let b:ghc_types = {}
-  let b:my_changedtick = b:changedtick
-endif
-
-if exists("g:haskell_functions")
-  finish
-endif
-let g:haskell_functions = "ghc"
-
-" avoid hit-enter prompts
-set cmdheight=3
-
-" edit static GHC options
-" TODO: add completion for options/packages?
-command! GHCStaticOptions call GHC_StaticOptions()
-function! GHC_StaticOptions()
-  let b:ghc_staticoptions = input('GHC static options: ',b:ghc_staticoptions)
-  execute 'setlocal makeprg=' . g:ghc . '\ ' . escape(b:ghc_staticoptions,' ') .'\ -e\ :q\ %'
-  let b:my_changedtick -=1
-endfunction
-
-map <LocalLeader>T :call GHC_ShowType(1)<cr>
-map <LocalLeader>t :call GHC_ShowType(0)<cr>
-function! GHC_ShowType(addTypeDecl)
-  let namsym   = haskellmode#GetNameSymbol(getline('.'),col('.'),0)
-  if namsym==[]
-    redraw
-    echo 'no name/symbol under cursor!'
-    return 0
-  endif
-  let [_,symb,qual,unqual] = namsym
-  let name  = qual=='' ? unqual : qual.'.'.unqual
-  let pname = ( symb ? '('.name.')' : name ) 
-  call GHC_HaveTypes()
-  if !has_key(b:ghc_types,name)
-    redraw
-    echo pname "type not known"
-  else
-    redraw
-    for type in split(b:ghc_types[name],' -- ')
-      echo pname "::" type
-      if a:addTypeDecl
-        call append( line(".")-1, pname . " :: " . type )
-      endif
-    endfor
-  endif
-endfunction
-
-" show type of identifier under mouse pointer in balloon
-if has("balloon_eval")
-  set ballooneval
-  set balloondelay=600
-  set balloonexpr=GHC_TypeBalloon()
-  function! GHC_TypeBalloon()
-    if exists("b:current_compiler") && b:current_compiler=="ghc" 
-      let [line] = getbufline(v:beval_bufnr,v:beval_lnum)
-      let namsym = haskellmode#GetNameSymbol(line,v:beval_col,0)
-      if namsym==[]
-        return ''
-      endif
-      let [start,symb,qual,unqual] = namsym
-      let name  = qual=='' ? unqual : qual.'.'.unqual
-      let pname = name " ( symb ? '('.name.')' : name )
-      silent call GHC_HaveTypes()
-      if has("balloon_multiline")
-        return (has_key(b:ghc_types,pname) ? split(b:ghc_types[pname],' -- ') : '') 
-      else
-        return (has_key(b:ghc_types,pname) ? b:ghc_types[pname] : '') 
-      endif
-    else
-      return ''
-    endif
-  endfunction
-endif
-
-map <LocalLeader>si :call GHC_ShowInfo()<cr>
-function! GHC_ShowInfo()
-  let namsym   = haskellmode#GetNameSymbol(getline('.'),col('.'),0)
-  if namsym==[]
-    redraw
-    echo 'no name/symbol under cursor!'
-    return 0
-  endif
-  let [_,symb,qual,unqual] = namsym
-  let name = qual=='' ? unqual : (qual.'.'.unqual)
-  let output = GHC_Info(name)
-  pclose | new 
-  setlocal previewwindow
-  setlocal buftype=nofile
-  setlocal noswapfile
-  put =output
-  wincmd w
-  "redraw
-  "echo output
-endfunction
-
-" fill the type map, unless nothing has changed since the last attempt
-function! GHC_HaveTypes()
-  if b:ghc_types == {} && (b:my_changedtick != b:changedtick)
-    let b:my_changedtick = b:changedtick
-    return GHC_BrowseAll()
-  endif
-endfunction
-
-" update b:ghc_types after successful make
-au QuickFixCmdPost make if GHC_CountErrors()==0 | silent call GHC_BrowseAll() | endif
-
-" count only error entries in quickfix list, ignoring warnings
-function! GHC_CountErrors()
-  let c=0
-  for e in getqflist() | if e.type=='E' && e.text !~ "^[ \n]*Warning:" | let c+=1 | endif | endfor
-  return c
-endfunction
-
-command! GHCReload call GHC_BrowseAll()
-function! GHC_BrowseAll()
-  " let imports = haskellmode#GatherImports()
-  " let modules = keys(imports[0]) + keys(imports[1])
-  let imports = {} " no need for them at the moment
-  let current = GHC_NameCurrent()
-  let module = current==[] ? 'Main' : current[0]
-  if GHC_VersionGE([6,8,1])
-    return GHC_BrowseBangStar(module)
-  else
-    return GHC_BrowseMultiple(imports,['*'.module])
-  endif
-endfunction
-
-function! GHC_VersionGE(target)
-  let current = split(g:ghc_version, '\.' )
-  let target  = a:target
-  for i in current
-    if ((target==[]) || (i>target[0]))
-      return 1
-    elseif (i==target[0])
-      let target = target[1:]
-    else
-      return 0
-    endif
-  endfor
-  return 1
-endfunction
-
-function! GHC_NameCurrent()
-  let last = line("$")
-  let l = 1
-  while l<last
-    let ml = matchlist( getline(l), '^module\s*\([^ (]*\)')
-    if ml != []
-      let [_,module;x] = ml
-      return [module]
-    endif
-    let l += 1
-  endwhile
-  redraw
-  echo "cannot find module header for file " . expand("%")
-  return []
-endfunction
-
-function! GHC_BrowseBangStar(module)
-  redraw
-  echo "browsing module " a:module
-  let command = ":browse! *" . a:module
-  let orig_shellredir = &shellredir
-  let &shellredir = ">" " ignore error/warning messages, only output or lack of it
-  let output = system(g:ghc . ' ' . b:ghc_staticoptions . ' -v0 --interactive ' . expand("%") , command )
-  let &shellredir = orig_shellredir
-  return GHC_ProcessBang(a:module,output)
-endfunction
-
-function! GHC_BrowseMultiple(imports,modules)
-  redraw
-  echo "browsing modules " a:modules
-  let command = ":browse " . join( a:modules, " \n :browse ") 
-  let command = substitute(command,'\(:browse \(\S*\)\)','putStrLn "-- \2" \n \1','g')
-  let output = system(g:ghc . ' ' . b:ghc_staticoptions . ' -v0 --interactive ' . expand("%") , command )
-  return GHC_Process(a:imports,output)
-endfunction
-
-function! GHC_Info(what)
-  " call GHC_HaveTypes()
-  let output = system(g:ghc . ' ' . b:ghc_staticoptions . ' -v0 --interactive ' . expand("%"), ":i ". a:what)
-  return output
-endfunction
-
-function! GHC_ProcessBang(module,output)
-  let module      = a:module
-  let b           = a:output
-  let linePat     = '^\(.\{-}\)\n\(.*\)'
-  let contPat     = '\s\+\(.\{-}\)\n\(.*\)'
-  let typePat     = '^\(\)\(\S*\)\s*::\(.*\)'
-  let commentPat  = '^-- \(\S*\)'
-  let definedPat  = '^-- defined locally'
-  let importedPat = '^-- imported via \(.*\)'
-  if !(b=~commentPat)
-    echo s:scriptname.": GHCi reports errors (try :make?)"
-    return 0
-  endif
-  let b:ghc_types = {}
-  let ml = matchlist( b , linePat )
-  while ml != []
-    let [_,l,rest;x] = ml
-    let mlDecl = matchlist( l, typePat )
-    if mlDecl != []
-      let [_,indent,id,type;x] = mlDecl
-      let ml2 = matchlist( rest , '^'.indent.contPat )
-      while ml2 != []
-        let [_,c,rest;x] = ml2
-        let type .= c
-        let ml2 = matchlist( rest , '^'.indent.contPat )
-      endwhile
-      let id   = substitute( id, '^(\(.*\))$', '\1', '')
-      let type = substitute( type, '\s\+', " ", "g" )
-      " using :browse! *<current>, we get both unqualified and qualified ids
-      let qualified = (id =~ '\.') && (id =~ '[A-Z]')
-      let b:ghc_types[id] = type
-      if !qualified
-        for qual in qualifiers
-          let b:ghc_types[qual.'.'.id] = type
-        endfor
-      endif
-    else
-      let mlImported = matchlist( l, importedPat )
-      let mlDefined  = matchlist( l, definedPat )
-      if mlImported != []
-        let [_,modules;x] = mlImported
-        let qualifiers = split( modules, ', ' )
-      elseif mlDefined != []
-        let qualifiers = [module]
-      endif
-    endif
-    let ml = matchlist( rest , linePat )
-  endwhile
-  return 1
-endfunction
-
-function! GHC_Process(imports,output)
-  let b       = a:output
-  let imports = a:imports
-  let linePat = '^\(.\{-}\)\n\(.*\)'
-  let contPat = '\s\+\(.\{-}\)\n\(.*\)'
-  let typePat = '^\(\s*\)\(\S*\)\s*::\(.*\)'
-  let modPat  = '^-- \(\S*\)'
-  " add '-- defined locally' and '-- imported via ..'
-  if !(b=~modPat)
-    echo s:scriptname.": GHCi reports errors (try :make?)"
-    return 0
-  endif
-  let b:ghc_types = {}
-  let ml = matchlist( b , linePat )
-  while ml != []
-    let [_,l,rest;x] = ml
-    let mlDecl = matchlist( l, typePat )
-    if mlDecl != []
-      let [_,indent,id,type;x] = mlDecl
-      let ml2 = matchlist( rest , '^'.indent.contPat )
-      while ml2 != []
-        let [_,c,rest;x] = ml2
-        let type .= c
-        let ml2 = matchlist( rest , '^'.indent.contPat )
-      endwhile
-      let id   = substitute(id, '^(\(.*\))$', '\1', '')
-      let type = substitute( type, '\s\+', " ", "g" )
-      " using :browse *<current>, we get both unqualified and qualified ids
-      if current_module " || has_key(imports[0],module) 
-        if has_key(b:ghc_types,id) && !(matchstr(b:ghc_types[id],escape(type,'[].'))==type)
-          let b:ghc_types[id] .= ' -- '.type
-        else
-          let b:ghc_types[id] = type
-        endif
-      endif
-      if 0 " has_key(imports[1],module) 
-        let qualid = module.'.'.id
-        let b:ghc_types[qualid] = type
-      endif
-    else
-      let mlMod = matchlist( l, modPat )
-      if mlMod != []
-        let [_,module;x] = mlMod
-        let current_module = module[0]=='*'
-        let module = current_module ? module[1:] : module
-      endif
-    endif
-    let ml = matchlist( rest , linePat )
-  endwhile
-  return 1
-endfunction
-
-let s:ghc_templates = ["module _ () where","class _ where","class _ => _ where","instance _ where","instance _ => _ where","type family _","type instance _ = ","data _ = ","newtype _ = ","type _ = "]
-
-" use ghci :browse index for insert mode omnicompletion (CTRL-X CTRL-O)
-function! GHC_CompleteImports(findstart, base)
-  if a:findstart 
-    let namsym   = haskellmode#GetNameSymbol(getline('.'),col('.'),-1) " insert-mode: we're 1 beyond the text
-    if namsym==[]
-      redraw
-      echo 'no name/symbol under cursor!'
-      return -1
-    endif
-    let [start,symb,qual,unqual] = namsym
-    return (start-1)
-  else " find keys matching with "a:base"
-    let res = []
-    let l   = len(a:base)-1
-    call GHC_HaveTypes()
-    for key in keys(b:ghc_types) 
-      if key[0 : l]==a:base
-        let res += [{"word":key,"menu":":: ".b:ghc_types[key],"dup":1}]
-      endif
-    endfor
-    return res
-  endif
-endfunction
-set omnifunc=GHC_CompleteImports
-"
-" Vim's default completeopt is menu,preview
-" you probably want at least menu, or you won't see alternatives listed
-" setlocal completeopt+=menu
-
-" menuone is useful, but other haskellmode menus will try to follow your choice here in future
-" setlocal completeopt+=menuone
-
-" longest sounds useful, but doesn't seem to do what it says, and interferes with CTRL-E
-" setlocal completeopt-=longest
-
-map <LocalLeader>ct :call GHC_CreateTagfile()<cr>
-function! GHC_CreateTagfile()
-  redraw
-  echo "creating tags file" 
-  let output = system(g:ghc . ' ' . b:ghc_staticoptions . ' -e ":ctags" ' . expand("%"))
-  " for ghcs older than 6.6, you would need to call another program 
-  " here, such as hasktags
-  echo output
-endfunction
-
-command! -nargs=1 GHCi redraw | echo system(g:ghc. ' ' . b:ghc_staticoptions .' '.expand("%").' -e "'.escape(<f-args>,'"').'"')
-
-" use :make 'not in scope' errors to explicitly list imported ids
-" cursor needs to be on import line, in correctly loadable module
-map <LocalLeader>ie :call GHC_MkImportsExplicit()<cr>
-function! GHC_MkImportsExplicit()
-  let save_cursor = getpos(".")
-  let line   = getline('.')
-  let lineno = line('.')
-  let ml     = matchlist(line,'^import\(\s*qualified\)\?\s*\([^( ]\+\)')
-  if ml!=[]
-    let [_,q,mod;x] = ml
-    silent make
-    if getqflist()==[]
-      if line=~"import[^(]*Prelude"
-        call setline(lineno,substitute(line,"(.*","","").'()')
-      else
-        call setline(lineno,'-- '.line)
-      endif
-      silent write
-      silent make
-      let qflist = getqflist()
-      call setline(lineno,line)
-      silent write
-      let ids = {}
-      for d in qflist
-        let ml = matchlist(d.text,'Not in scope: \([^`]*\)`\([^'']*\)''')
-        if ml!=[]
-          let [_,what,qid;x] = ml
-          let id  = ( qid =~ "^[A-Z]" ? substitute(qid,'.*\.\([^.]*\)$','\1','') : qid )
-          let pid = ( id =~ "[a-zA-Z0-9_']\\+" ? id : '('.id.')' )
-          if what =~ "data"
-            call GHC_HaveTypes()
-            if has_key(b:ghc_types,id)
-              let pid = substitute(b:ghc_types[id],'^.*->\s*\(\S*\).*$','\1','').'('.pid.')'
-            else
-              let pid = '???('.pid.')'
-            endif
-          endif
-          let ids[pid] = 1
-        endif
-      endfor
-      call setline(lineno,'import'.q.' '.mod.'('.join(keys(ids),',').')')
-    else
-      copen
-    endif
-  endif
-  call setpos('.', save_cursor)
-endfunction
-
-if GHC_VersionGE([6,8,2])
-  let opts = filter(split(substitute(system(g:ghc . ' -v0 --interactive', ':set'), '  ', '','g'), '\n'), 'v:val =~ "-f"')
-else
-  let opts = ["-fglasgow-exts","-fallow-undecidable-instances","-fallow-overlapping-instances","-fno-monomorphism-restriction","-fno-mono-pat-binds","-fno-cse","-fbang-patterns","-funbox-strict-fields"]
-endif
-
-amenu ]OPTIONS_GHC.- :echo '-'<cr>
-aunmenu ]OPTIONS_GHC
-for o in opts
-  exe 'amenu ]OPTIONS_GHC.'.o.' :call append(0,"{-# OPTIONS_GHC '.o.' #-}")<cr>'
-endfor
-if has("gui_running")
-  map <LocalLeader>opt :popup ]OPTIONS_GHC<cr>
-else
-  map <LocalLeader>opt :emenu ]OPTIONS_GHC.
-endif
-
-amenu ]LANGUAGES_GHC.- :echo '-'<cr>
-aunmenu ]LANGUAGES_GHC
-if GHC_VersionGE([6,8])
-  let ghc_supported_languages = split(system(g:ghc . ' --supported-languages'),'\n')
-  for l in ghc_supported_languages
-    exe 'amenu ]LANGUAGES_GHC.'.l.' :call append(0,"{-# LANGUAGE '.l.' #-}")<cr>'
-  endfor
-  if has("gui_running")
-    map <LocalLeader>lang :popup ]LANGUAGES_GHC<cr>
-  else
-    map <LocalLeader>lang :emenu ]LANGUAGES_GHC.
-  endif
-endif

vim/.vim/doc/NERD_tree.txt

-*NERD_tree.txt*   A tree explorer plugin that owns your momma!
-
-
-
-    omg its ... ~
-
-    ________  ________   _   ____________  ____     __________  ____________~
-   /_  __/ / / / ____/  / | / / ____/ __ \/ __ \   /_  __/ __ \/ ____/ ____/~
-    / / / /_/ / __/    /  |/ / __/ / /_/ / / / /    / / / /_/ / __/ / __/   ~
-   / / / __  / /___   / /|  / /___/ _, _/ /_/ /    / / / _, _/ /___/ /___   ~
-  /_/ /_/ /_/_____/  /_/ |_/_____/_/ |_/_____/    /_/ /_/ |_/_____/_____/   ~
-
-
-                              Reference Manual~
-
-
-
-
-==============================================================================
-CONTENTS                                                   *NERDTree-contents*
-
-    1.Intro...................................|NERDTree|
-    2.Functionality provided..................|NERDTreeFunctionality|
-        2.1.Global commands...................|NERDTreeGlobalCommands|
-        2.2.Bookmarks.........................|NERDTreeBookmarks|
-            2.2.1.The bookmark table..........|NERDTreeBookmarkTable|
-            2.2.2.Bookmark commands...........|NERDTreeBookmarkCommands|
-            2.2.3.Invalid bookmarks...........|NERDTreeInvalidBookmarks|
-        2.3.NERD tree mappings................|NERDTreeMappings|
-        2.4.The NERD tree menu................|NERDTreeMenu|
-    3.Options.................................|NERDTreeOptions|
-        3.1.Option summary....................|NERDTreeOptionSummary|
-        3.2.Option details....................|NERDTreeOptionDetails|
-    4.The NERD tree API.......................|NERDTreeAPI|
-        4.1.Key map API.......................|NERDTreeKeymapAPI|
-        4.2.Menu API..........................|NERDTreeMenuAPI|
-    5.About...................................|NERDTreeAbout|
-    6.Changelog...............................|NERDTreeChangelog|
-    7.Credits.................................|NERDTreeCredits|
-    8.License.................................|NERDTreeLicense|
-
-==============================================================================
-1. Intro                                                            *NERDTree*
-
-What is this "NERD tree"??
-
-The NERD tree allows you to explore your filesystem and to open files and
-directories. It presents the filesystem to you in the form of a tree which you
-manipulate with the keyboard and/or mouse. It also allows you to perform
-simple filesystem operations.
-
-The following features and functionality are provided by the NERD tree:
-    * Files and directories are displayed in a hierarchical tree structure
-    * Different highlighting is provided for the following types of nodes:
-        * files
-        * directories
-        * sym-links
-        * windows .lnk files
-        * read-only files
-        * executable files
-    * Many (customisable) mappings are provided to manipulate the tree:
-        * Mappings to open/close/explore directory nodes
-        * Mappings to open files in new/existing windows/tabs
-        * Mappings to change the current root of the tree
-        * Mappings to navigate around the tree
-        * ...
-    * Directories and files can be bookmarked.
-    * Most NERD tree navigation can also be done with the mouse
-    * Filtering of tree content (can be toggled at runtime)
-        * custom file filters to prevent e.g. vim backup files being displayed
-        * optional displaying of hidden files (. files)
-        * files can be "turned off" so that only directories are displayed
-    * The position and size of the NERD tree window can be customised
-    * The order in which the nodes in the tree are listed can be customised.
-    * A model of your filesystem is created/maintained as you explore it. This
-      has several advantages:
-        * All filesystem information is cached and is only re-read on demand
-        * If you revisit a part of the tree that you left earlier in your
-          session, the directory nodes will be opened/closed as you left them
-    * The script remembers the cursor position and window position in the NERD
-      tree so you can toggle it off (or just close the tree window) and then
-      reopen it (with NERDTreeToggle) the NERD tree window will appear exactly
-      as you left it
-    * You can have a separate NERD tree for each tab, share trees across tabs,
-      or a mix of both.
-    * By default the script overrides the default file browser (netw), so if
-      you :edit a directory a (slighly modified) NERD tree will appear in the
-      current window
-    * A programmable menu system is provided (simulates right clicking on a
-      node)
-        * one default menu plugin is provided to perform basic filesytem
-          operations (create/delete/move/copy files/directories)
-    * There's an API for adding your own keymappings
-
-
-==============================================================================
-2. Functionality provided                              *NERDTreeFunctionality*
-
-------------------------------------------------------------------------------
-2.1. Global Commands                                  *NERDTreeGlobalCommands*
-
-:NERDTree [<start-directory> | <bookmark>]                         *:NERDTree*
-    Opens a fresh NERD tree. The root of the tree depends on the argument
-    given. There are 3 cases: If no argument is given, the current directory
-    will be used.  If a directory is given, that will be used. If a bookmark
-    name is given, the corresponding directory will be used.  For example: >
-        :NERDTree /home/marty/vim7/src
-        :NERDTree foo   (foo is the name of a bookmark)
-<
-:NERDTreeFromBookmark <bookmark>                       *:NERDTreeFromBookmark*
-    Opens a fresh NERD tree with the root initialized to the dir for
-    <bookmark>.  This only reason to use this command over :NERDTree is for
-    the completion (which is for bookmarks rather than directories).
-
-:NERDTreeToggle [<start-directory> | <bookmark>]             *:NERDTreeToggle*
-    If a NERD tree already exists for this tab, it is reopened and rendered
-    again.  If no NERD tree exists for this tab then this command acts the
-    same as the |:NERDTree| command.
-
-:NERDTreeMirror                                              *:NERDTreeMirror*
-    Shares an existing NERD tree, from another tab, in the current tab.
-    Changes made to one tree are reflected in both as they are actually the
-    same buffer.
-
-    If only one other NERD tree exists, that tree is automatically mirrored. If
-    more than one exists, the script will ask which tree to mirror.
-
-:NERDTreeClose                                                *:NERDTreeClose*
-    Close the NERD tree in this tab.
-
-:NERDTreeFind                                                  *:NERDTreeFind*
-    Find the current file in the tree. If no tree exists for the current tab,
-    or the file is not under the current root, then initialize a new tree where
-    the root is the directory of the current file.
-
-------------------------------------------------------------------------------
-2.2. Bookmarks                                             *NERDTreeBookmarks*
-
-Bookmarks in the NERD tree are a way to tag files or directories of interest.
-For example, you could use bookmarks to tag all of your project directories.
-
-------------------------------------------------------------------------------
-2.2.1. The Bookmark Table                              *NERDTreeBookmarkTable*
-
-If the bookmark table is active (see |NERDTree-B| and
-|'NERDTreeShowBookmarks'|), it will be rendered above the tree. You can double
-click bookmarks or use the |NERDTree-o| mapping to activate them. See also,
-|NERDTree-t| and |NERDTree-T|
-
-------------------------------------------------------------------------------
-2.2.2. Bookmark commands                            *NERDTreeBookmarkCommands*
-
-Note that the following commands are only available in the NERD tree buffer.
-
-:Bookmark <name>
-    Bookmark the current node as <name>. If there is already a <name>
-    bookmark, it is overwritten. <name> must not contain spaces.
-
-:BookmarkToRoot <bookmark>
-    Make the directory corresponding to <bookmark> the new root. If a treenode
-    corresponding to <bookmark> is already cached somewhere in the tree then
-    the current tree will be used, otherwise a fresh tree will be opened.
-    Note that if <bookmark> points to a file then its parent will be used
-    instead.
-
-:RevealBookmark <bookmark>
-    If the node is cached under the current root then it will be revealed
-    (i.e. directory nodes above it will be opened) and the cursor will be
-    placed on it.
-
-:OpenBookmark <bookmark>
-    <bookmark> must point to a file. The file is opened as though |NERDTree-o|
-    was applied. If the node is cached under the current root then it will be
-    revealed and the cursor will be placed on it.
-
-:ClearBookmarks [<bookmarks>]
-    Remove all the given bookmarks. If no bookmarks are given then remove all
-    bookmarks on the current node.
-
-:ClearAllBookmarks
-    Remove all bookmarks.
-
-:ReadBookmarks
-    Re-read the bookmarks in the |'NERDTreeBookmarksFile'|.
-
-See also |:NERDTree| and |:NERDTreeFromBookmark|.
-
-------------------------------------------------------------------------------
-2.2.3. Invalid Bookmarks                            *NERDTreeInvalidBookmarks*
-
-If invalid bookmarks are detected, the script will issue an error message and
-the invalid bookmarks will become unavailable for use.
-
-These bookmarks will still be stored in the bookmarks file (see
-|'NERDTreeBookmarksFile'|), down the bottom. There will always be a blank line
-after the valid bookmarks but before the invalid ones.
-
-Each line in the bookmarks file represents one bookmark. The proper format is:
-<bookmark name><space><full path to the bookmark location>
-
-After you have corrected any invalid bookmarks, either restart vim, or go
-:ReadBookmarks from the NERD tree window.
-
-------------------------------------------------------------------------------
-2.3. NERD tree Mappings                                     *NERDTreeMappings*
-
-Default  Description~                                             help-tag~
-Key~
-
-o.......Open files, directories and bookmarks....................|NERDTree-o|
-go......Open selected file, but leave cursor in the NERDTree.....|NERDTree-go|
-t.......Open selected node/bookmark in a new tab.................|NERDTree-t|
-T.......Same as 't' but keep the focus on the current tab........|NERDTree-T|
-i.......Open selected file in a split window.....................|NERDTree-i|
-gi......Same as i, but leave the cursor on the NERDTree..........|NERDTree-gi|
-s.......Open selected file in a new vsplit.......................|NERDTree-s|
-gs......Same as s, but leave the cursor on the NERDTree..........|NERDTree-gs|
-O.......Recursively open the selected directory..................|NERDTree-O|
-x.......Close the current nodes parent...........................|NERDTree-x|
-X.......Recursively close all children of the current node.......|NERDTree-X|
-e.......Edit the current dif.....................................|NERDTree-e|
-
-<CR>...............same as |NERDTree-o|.
-double-click.......same as the |NERDTree-o| map.
-middle-click.......same as |NERDTree-i| for files, same as
-                   |NERDTree-e| for dirs.
-
-D.......Delete the current bookmark .............................|NERDTree-D|
-
-P.......Jump to the root node....................................|NERDTree-P|
-p.......Jump to current nodes parent.............................|NERDTree-p|
-K.......Jump up inside directories at the current tree depth.....|NERDTree-K|
-J.......Jump down inside directories at the current tree depth...|NERDTree-J|
-<C-J>...Jump down to the next sibling of the current directory...|NERDTree-C-J|
-<C-K>...Jump up to the previous sibling of the current directory.|NERDTree-C-K|
-
-C.......Change the tree root to the selected dir.................|NERDTree-C|
-u.......Move the tree root up one directory......................|NERDTree-u|
-U.......Same as 'u' except the old root node is left open........|NERDTree-U|
-r.......Recursively refresh the current directory................|NERDTree-r|
-R.......Recursively refresh the current root.....................|NERDTree-R|
-m.......Display the NERD tree menu...............................|NERDTree-m|
-cd......Change the CWD to the dir of the selected node...........|NERDTree-cd|
-
-I.......Toggle whether hidden files displayed....................|NERDTree-I|
-f.......Toggle whether the file filters are used.................|NERDTree-f|
-F.......Toggle whether files are displayed.......................|NERDTree-F|
-B.......Toggle whether the bookmark table is displayed...........|NERDTree-B|
-
-q.......Close the NERDTree window................................|NERDTree-q|
-A.......Zoom (maximize/minimize) the NERDTree window.............|NERDTree-A|
-?.......Toggle the display of the quick help.....................|NERDTree-?|
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-o*
-Default key: o
-Map option: NERDTreeMapActivateNode
-Applies to: files and directories.
-
-If a file node is selected, it is opened in the previous window.
-
-If a directory is selected it is opened or closed depending on its current
-state.
-
-If a bookmark that links to a directory is selected then that directory
-becomes the new root.
-
-If a bookmark that links to a file is selected then that file is opened in the
-previous window.
-
-------------------------------------------------------------------------------
-                                                                 *NERDTree-go*
-Default key: go
-Map option: None
-Applies to: files.
-
-If a file node is selected, it is opened in the previous window, but the
-cursor does not move.
-
-The key combo for this mapping is always "g" + NERDTreeMapActivateNode (see
-|NERDTree-o|).
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-t*
-Default key: t
-Map option: NERDTreeMapOpenInTab
-Applies to: files and directories.
-
-Opens the selected file in a new tab. If a directory is selected, a fresh
-NERD Tree for that directory is opened in a new tab.
-
-If a bookmark which points to a directory is selected, open a NERD tree for
-that directory in a new tab. If the bookmark points to a file, open that file
-in a new tab.
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-T*
-Default key: T
-Map option: NERDTreeMapOpenInTabSilent
-Applies to: files and directories.
-
-The same as |NERDTree-t| except that the focus is kept in the current tab.
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-i*
-Default key: i
-Map option: NERDTreeMapOpenSplit
-Applies to: files.
-
-Opens the selected file in a new split window and puts the cursor in the new
-window.
-
-------------------------------------------------------------------------------
-                                                                 *NERDTree-gi*
-Default key: gi
-Map option: None
-Applies to: files.
-
-The same as |NERDTree-i| except that the cursor is not moved.
-
-The key combo for this mapping is always "g" + NERDTreeMapOpenSplit (see
-|NERDTree-i|).
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-s*
-Default key: s
-Map option: NERDTreeMapOpenVSplit
-Applies to: files.
-
-Opens the selected file in a new vertically split window and puts the cursor in
-the new window.
-
-------------------------------------------------------------------------------
-                                                                 *NERDTree-gs*
-Default key: gs
-Map option: None
-Applies to: files.
-
-The same as |NERDTree-s| except that the cursor is not moved.
-
-The key combo for this mapping is always "g" + NERDTreeMapOpenVSplit (see
-|NERDTree-s|).
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-O*
-Default key: O
-Map option: NERDTreeMapOpenRecursively
-Applies to: directories.
-
-Recursively opens the selelected directory.
-
-All files and directories are cached, but if a directory would not be
-displayed due to file filters (see |'NERDTreeIgnore'| |NERDTree-f|) or the
-hidden file filter (see |'NERDTreeShowHidden'|) then its contents are not
-cached. This is handy, especially if you have .svn directories.
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-x*
-Default key: x
-Map option: NERDTreeMapCloseDir
-Applies to: files and directories.
-
-Closes the parent of the selected node.
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-X*
-Default key: X
-Map option: NERDTreeMapCloseChildren
-Applies to: directories.
-
-Recursively closes all children of the selected directory.
-
-Tip: To quickly "reset" the tree, use |NERDTree-P| with this mapping.
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-e*
-Default key: e
-Map option: NERDTreeMapOpenExpl
-Applies to: files and directories.
-
-|:edit|s the selected directory, or the selected file's directory. This could
-result in a NERD tree or a netrw being opened, depending on
-|'NERDTreeHijackNetrw'|.
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-D*
-Default key: D
-Map option: NERDTreeMapDeleteBookmark
-Applies to: lines in the bookmarks table
-
-Deletes the currently selected bookmark.
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-P*
-Default key: P
-Map option: NERDTreeMapJumpRoot
-Applies to: no restrictions.
-
-Jump to the tree root.
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-p*
-Default key: p
-Map option: NERDTreeMapJumpParent
-Applies to: files and directories.
-
-Jump to the parent node of the selected node.
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-K*
-Default key: K
-Map option: NERDTreeMapJumpFirstChild
-Applies to: files and directories.
-
-Jump to the first child of the current nodes parent.
-
-If the cursor is already on the first node then do the following:
-    * loop back thru the siblings of the current nodes parent until we find an
-      open dir with children
-    * go to the first child of that node
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-J*
-Default key: J
-Map option: NERDTreeMapJumpLastChild
-Applies to: files and directories.
-
-Jump to the last child of the current nodes parent.
-
-If the cursor is already on the last node then do the following:
-    * loop forward thru the siblings of the current nodes parent until we find
-      an open dir with children
-    * go to the last child of that node
-
-------------------------------------------------------------------------------
-                                                                *NERDTree-C-J*
-Default key: <C-J>
-Map option: NERDTreeMapJumpNextSibling
-Applies to: files and directories.
-
-Jump to the next sibling of the selected node.
-
-------------------------------------------------------------------------------
-                                                                *NERDTree-C-K*
-Default key: <C-K>
-Map option: NERDTreeMapJumpPrevSibling
-Applies to: files and directories.
-
-Jump to the previous sibling of the selected node.
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-C*
-Default key: C
-Map option: NERDTreeMapChdir
-Applies to: directories.
-
-Make the selected directory node the new tree root. If a file is selected, its
-parent is used.
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-u*
-Default key: u
-Map option: NERDTreeMapUpdir
-Applies to: no restrictions.
-
-Move the tree root up a dir (like doing a "cd ..").
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-U*
-Default key: U
-Map option: NERDTreeMapUpdirKeepOpen
-Applies to: no restrictions.
-
-Like |NERDTree-u| except that the old tree root is kept open.
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-r*
-Default key: r
-Map option: NERDTreeMapRefresh
-Applies to: files and directories.
-
-If a dir is selected, recursively refresh that dir, i.e. scan the filesystem
-for changes and represent them in the tree.
-
-If a file node is selected then the above is done on it's parent.
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-R*
-Default key: R
-Map option: NERDTreeMapRefreshRoot
-Applies to: no restrictions.
-
-Recursively refresh the tree root.
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-m*
-Default key: m
-Map option: NERDTreeMapMenu
-Applies to: files and directories.
-
-Display the NERD tree menu. See |NERDTreeMenu| for details.
-
-------------------------------------------------------------------------------
-                                                                 *NERDTree-cd*
-Default key: cd
-Map option: NERDTreeMapChdir
-Applies to: files and directories.
-
-Change vims current working directory to that of the selected node.
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-I*
-Default key: I
-Map option: NERDTreeMapToggleHidden
-Applies to: no restrictions.
-
-Toggles whether hidden files (i.e. "dot files") are displayed.
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-f*
-Default key: f
-Map option: NERDTreeMapToggleFilters
-Applies to: no restrictions.
-
-Toggles whether file filters are used. See |'NERDTreeIgnore'| for details.
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-F*
-Default key: F
-Map option: NERDTreeMapToggleFiles
-Applies to: no restrictions.
-
-Toggles whether file nodes are displayed.
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-B*
-Default key: B
-Map option: NERDTreeMapToggleBookmarks
-Applies to: no restrictions.
-
-Toggles whether the bookmarks table is displayed.
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-q*
-Default key: q
-Map option: NERDTreeMapQuit
-Applies to: no restrictions.
-
-Closes the NERDtree window.
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-A*
-Default key: A
-Map option: NERDTreeMapToggleZoom
-Applies to: no restrictions.
-
-Maximize (zoom) and minimize the NERDtree window.
-
-------------------------------------------------------------------------------
-                                                                  *NERDTree-?*
-Default key: ?
-Map option: NERDTreeMapHelp
-Applies to: no restrictions.
-
-Toggles whether the quickhelp is displayed.
-
-------------------------------------------------------------------------------
-2.3. The NERD tree menu                                         *NERDTreeMenu*
-
-The NERD tree has a menu that can be programmed via the an API (see
-|NERDTreeMenuAPI|). The idea is to simulate the "right click" menus that most
-file explorers have.
-
-The script comes with two default menu plugins: exec_menuitem.vim and
-fs_menu.vim. fs_menu.vim adds some basic filesystem operations to the menu for
-creating/deleting/moving/copying files and dirs. exec_menuitem.vim provides a
-menu item to execute executable files.
-
-Related tags: |NERDTree-m| |NERDTreeApi|
-
-==============================================================================
-3. Customisation                                             *NERDTreeOptions*
-
-
-------------------------------------------------------------------------------
-3.1. Customisation summary                             *NERDTreeOptionSummary*
-
-The script provides the following options that can customise the behaviour the
-NERD tree. These options should be set in your vimrc.
-
-|'loaded_nerd_tree'|            Turns off the script.
-
-|'NERDChristmasTree'|           Tells the NERD tree to make itself colourful
-                                and pretty.
-
-|'NERDTreeAutoCenter'|          Controls whether the NERD tree window centers
-                                when the cursor moves within a specified
-                                distance to the top/bottom of the window.
-|'NERDTreeAutoCenterThreshold'| Controls the sensitivity of autocentering.
-
-|'NERDTreeCaseSensitiveSort'|   Tells the NERD tree whether to be case
-                                sensitive or not when sorting nodes.
-
-|'NERDTreeChDirMode'|           Tells the NERD tree if/when it should change
-                                vim's current working directory.
-
-|'NERDTreeHighlightCursorline'| Tell the NERD tree whether to highlight the
-                                current cursor line.
-
-|'NERDTreeHijackNetrw'|         Tell the NERD tree whether to replace the netrw
-                                autocommands for exploring local directories.
-
-|'NERDTreeIgnore'|              Tells the NERD tree which files to ignore.
-
-|'NERDTreeBookmarksFile'|       Where the bookmarks are stored.
-
-|'NERDTreeMouseMode'|           Tells the NERD tree how to handle mouse
-                                clicks.
-
-|'NERDTreeQuitOnOpen'|          Closes the tree window after opening a file.
-
-|'NERDTreeShowBookmarks'|       Tells the NERD tree whether to display the
-                                bookmarks table on startup.
-
-|'NERDTreeShowFiles'|           Tells the NERD tree whether to display files
-                                in the tree on startup.
-
-|'NERDTreeShowHidden'|          Tells the NERD tree whether to display hidden
-                                files on startup.
-
-|'NERDTreeShowLineNumbers'|     Tells the NERD tree whether to display line
-                                numbers in the tree window.
-
-|'NERDTreeSortOrder'|           Tell the NERD tree how to sort the nodes in
-                                the tree.
-
-|'NERDTreeStatusline'|          Set a statusline for NERD tree windows.
-
-|'NERDTreeWinPos'|              Tells the script where to put the NERD tree
-                                window.
-
-|'NERDTreeWinSize'|             Sets the window size when the NERD tree is
-                                opened.
-
-------------------------------------------------------------------------------
-3.2. Customisation details                             *NERDTreeOptionDetails*
-
-To enable any of the below options you should put the given line in your
-~/.vimrc
-
-                                                          *'loaded_nerd_tree'*
-If this plugin is making you feel homicidal, it may be a good idea to turn it
-off with this line in your vimrc: >
-    let loaded_nerd_tree=1
-<
-------------------------------------------------------------------------------
-                                                         *'NERDChristmasTree'*
-Values: 0 or 1.
-Default: 1.
-
-If this option is set to 1 then some extra syntax highlighting elements are
-added to the nerd tree to make it more colourful.
-
-Set it to 0 for a more vanilla looking tree.
-
-------------------------------------------------------------------------------
-                                                        *'NERDTreeAutoCenter'*
-Values: 0 or 1.
-Default: 1
-
-If set to 1, the NERD tree window will center around the cursor if it moves to
-within |'NERDTreeAutoCenterThreshold'| lines of the top/bottom of the window.
-
-This is ONLY done in response to tree navigation mappings,
-i.e. |NERDTree-J| |NERDTree-K| |NERDTree-C-J| |NERDTree-C-K| |NERDTree-p|
-|NERDTree-P|
-
-The centering is done with a |zz| operation.
-
-------------------------------------------------------------------------------
-                                               *'NERDTreeAutoCenterThreshold'*
-Values: Any natural number.
-Default: 3
-
-This option controls the "sensitivity" of the NERD tree auto centering. See
-|'NERDTreeAutoCenter'| for details.
-
-------------------------------------------------------------------------------
-                                                 *'NERDTreeCaseSensitiveSort'*
-Values: 0 or 1.
-Default: 0.
-
-By default the NERD tree does not sort nodes case sensitively, i.e. nodes
-could appear like this: >
-    bar.c
-    Baz.c
-    blarg.c
-    boner.c
-    Foo.c
-<
-But, if you set this option to 1 then the case of the nodes will be taken into
-account. The above nodes would then be sorted like this: >
-    Baz.c
-    Foo.c
-    bar.c
-    blarg.c
-    boner.c
-<
-------------------------------------------------------------------------------
-                                                         *'NERDTreeChDirMode'*
-
-Values: 0, 1 or 2.
-Default: 0.
-
-Use this option to tell the script when (if at all) to change the current
-working directory (CWD) for vim.
-
-If it is set to 0 then the CWD is never changed by the NERD tree.
-
-If set to 1 then the CWD is changed when the NERD tree is first loaded to the
-directory it is initialized in. For example, if you start the NERD tree with >
-    :NERDTree /home/marty/foobar
-<
-then the CWD will be changed to /home/marty/foobar and will not be changed
-again unless you init another NERD tree with a similar command.
-
-If the option is set to 2 then it behaves the same as if set to 1 except that
-the CWD is changed whenever the tree root is changed. For example, if the CWD
-is /home/marty/foobar and you make the node for /home/marty/foobar/baz the new
-root then the CWD will become /home/marty/foobar/baz.
-
-------------------------------------------------------------------------------
-                                               *'NERDTreeHighlightCursorline'*
-Values: 0 or 1.
-Default: 1.
-
-If set to 1, the current cursor line in the NERD tree buffer will be
-highlighted. This is done using the |'cursorline'| option.
-
-------------------------------------------------------------------------------
-                                                       *'NERDTreeHijackNetrw'*
-Values: 0 or 1.
-Default: 1.
-
-If set to 1, doing a >
-    :edit <some directory>
-<
-will open up a "secondary" NERD tree instead of a netrw in the target window.
-
-Secondary NERD trees behaves slighly different from a regular trees in the
-following respects:
-    1. 'o' will open the selected file in the same window as the tree,
-       replacing it.
-    2. you can have as many secondary tree as you want in the same tab.
-
-------------------------------------------------------------------------------
-                                                            *'NERDTreeIgnore'*
-Values: a list of regular expressions.
-Default: ['\~$'].
-
-This option is used to specify which files the NERD tree should ignore.  It
-must be a list of regular expressions. When the NERD tree is rendered, any
-files/dirs that match any of the regex's in 'NERDTreeIgnore' wont be
-displayed.
-
-For example if you put the following line in your vimrc: >
-    let NERDTreeIgnore=['\.vim$', '\~$']
-<
-then all files ending in .vim or ~ will be ignored.
-
-Note: to tell the NERD tree not to ignore any files you must use the following
-line: >
-    let NERDTreeIgnore=[]
-<
-
-The file filters can be turned on and off dynamically with the |NERDTree-f|
-mapping.
-
-------------------------------------------------------------------------------
-                                                     *'NERDTreeBookmarksFile'*
-Values: a path
-Default: $HOME/.NERDTreeBookmarks
-
-This is where bookmarks are saved. See |NERDTreeBookmarkCommands|.
-
-------------------------------------------------------------------------------
-                                                       *'NERDTreeMouseMode'*
-Values: 1, 2 or 3.
-Default: 1.
-
-If set to 1 then a double click on a node is required to open it.
-If set to 2 then a single click will open directory nodes, while a double
-click will still be required for file nodes.
-If set to 3 then a single click will open any node.
-
-Note: a double click anywhere on a line that a tree node is on will
-activate it, but all single-click activations must be done on name of the node
-itself. For example, if you have the following node: >
-    | | |-application.rb
-<
-then (to single click activate it) you must click somewhere in
-'application.rb'.
-
-------------------------------------------------------------------------------
-                                                        *'NERDTreeQuitOnOpen'*
-
-Values: 0 or 1.
-Default: 0
-
-If set to 1, the NERD tree window will close after opening a file with the
-|NERDTree-o|, |NERDTree-i|, |NERDTree-t| and |NERDTree-T| mappings.
-
-------------------------------------------------------------------------------
-                                                     *'NERDTreeShowBookmarks'*
-Values: 0 or 1.
-Default: 0.
-
-If this option is set to 1 then the bookmarks table will be displayed.
-
-This option can be toggled dynamically, per tree, with the |NERDTree-B|
-mapping.
-
-------------------------------------------------------------------------------
-                                                         *'NERDTreeShowFiles'*
-Values: 0 or 1.
-Default: 1.
-
-If this option is set to 1 then files are displayed in the NERD tree. If it is
-set to 0 then only directories are displayed.
-
-This option can be toggled dynamically, per tree, with the |NERDTree-F|
-mapping and is useful for drastically shrinking the tree when you are
-navigating to a different part of the tree.
-
-------------------------------------------------------------------------------
-                                                        *'NERDTreeShowHidden'*
-Values: 0 or 1.
-Default: 0.
-
-This option tells vim whether to display hidden files by default. This option
-can be dynamically toggled, per tree, with the |NERDTree-I| mapping.  Use one
-of the follow lines to set this option: >
-    let NERDTreeShowHidden=0
-    let NERDTreeShowHidden=1
-<
-
-------------------------------------------------------------------------------
-                                                   *'NERDTreeShowLineNumbers'*
-Values: 0 or 1.
-Default: 0.
-
-This option tells vim whether to display line numbers for the NERD tree
-window.  Use one of the follow lines to set this option: >
-    let NERDTreeShowLineNumbers=0
-    let NERDTreeShowLineNumbers=1
-<
-
-------------------------------------------------------------------------------
-                                                         *'NERDTreeSortOrder'*
-Values: a list of regular expressions.
-Default: ['\/$', '*', '\.swp$',  '\.bak$', '\~$']
-
-This option is set to a list of regular expressions which are used to
-specify the order of nodes under their parent.
-
-For example, if the option is set to: >
-    ['\.vim$', '\.c$', '\.h$', '*', 'foobar']
-<
-then all .vim files will be placed at the top, followed by all .c files then
-all .h files. All files containing the string 'foobar' will be placed at the
-end.  The star is a special flag: it tells the script that every node that
-doesnt match any of the other regexps should be placed here.
-
-If no star is present in 'NERDTreeSortOrder' then one is automatically
-appended to the array.