summaryrefslogtreecommitdiff
path: root/.config/nvim/plugins/nerdtree.vim
blob: 8a7869a44eedf07afdff1e61e02ec805cd975b99 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
let g:NERDTreeShowHidden=1
let g:NERDTreeGitStatusShowIgnored=1

if !&diff
  autocmd StdinReadPre * let s:std_in=1
  autocmd VimEnter * NERDTree | if argc() > 0 || exists('s:std_in') | wincmd p | endif
  autocmd VimEnter * if argc() > 0 | silent NERDTreeFind | wincmd p | endif
endif

autocmd BufWinEnter * if getcmdwintype() == '' | silent NERDTreeMirror | endif
autocmd BufEnter * if winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif

" set status line on tab switch
function NERDTreeStatusLineTabSwitch()
  let tab_nr = tabpagenr()
  let buffer_list = tabpagebuflist(tab_nr)

  " default to 2
  let meaningful_window_nr = 2

  for buffer_nr in buffer_list
    let buffer_type = getbufvar(buffer_nr, "&filetype")
    if index(g:NERDTreeStatusLineTabSwitchFiletypes, buffer_type) == -1
      let meaningful_window_nr = bufwinnr(buffer_nr)
      break
    endif
  endfor

  exe meaningful_window_nr .. "wincmd w"
endfunction
autocmd TabLeave * call NERDTreeStatusLineTabSwitch()

map <C-b> <cmd>NERDTreeToggle<CR>