diff --git a/.vimrc b/.vimrc index 5aa4f20..f4f4bb4 100644 --- a/.vimrc +++ b/.vimrc @@ -145,6 +145,7 @@ nmap fb :Buffers nmap fg :Rg "" nmap fe &filetype ==# 'netrw' ? ':Rex' : ':Ex' nmap q :bn \| bd# +nmap tt :NERDTreeToggle nmap uu :tabnew \| bprevious \| UndotreeToggle \| UndotreeFocus tnoremap tnoremap @@ -214,6 +215,20 @@ let g:gitgutter_sign_removed = '┃' let g:colorizer_colornames = 0 +" {{{3 NERDTree + +let g:NERDTreeDirArrowCollapsible = "" +let g:NERDTreeDirArrowExpandable = "" +let g:NERDTreeHijackNetrw = 0 +let g:NERDTreeShowHidden = 1 +let g:NERDTreeWinSize = 40 +let g:NERDTreeMinimalUI = 1 +let g:NERDTreeCascadeSingleChildDir = 0 +let g:NERDTreeRemoveFileCmd = "gio trash " +let g:NERDTreeRemoveDirCmd = "gio trash " +let g:NERDTreeMapActivateNode = "l" +let g:NERDTreeMapCloseDir = "h" + " {{{3 onedark let g:onedark_color_overrides = { \ "background": {"gui": "#1f2329", "cterm": "235", "cterm16": "NONE" }, @@ -277,6 +292,8 @@ call plug#begin(s:plug_dir) Plug 'rbong/vim-flog' Plug 'chrisbra/Colorizer' Plug 'jceb/vim-orgmode' + Plug 'preservim/nerdtree' + Plug 'ryanoasis/vim-devicons' Plug 'mbbill/undotree' " Plug 'prabirshrestha/vim-lsp' @@ -678,7 +695,25 @@ function! ToggleGitStatus() call OpenGitStatus() endfunction +function! s:SetupNERDTree() + if !exists('g:loaded_nerd_tree') + return + endif + + " Exit Vim if NERDTree is the only window remaining in the only tab. + autocmd BufEnter * if tabpagenr('$') == 1 && + \ winnr('$') == 1 && + \ exists('b:NERDTree') && + \ b:NERDTree.isTabTree() | + \ quit | + \ endif + + " Start NERDTree and put the cursor back in the other window. + NERDTree | wincmd p +endfunction + autocmd VimEnter * call s:SetupGitGutter() +autocmd VimEnter * call s:SetupNERDTree() cnoreabbrev term terminal ++curwin