From 3ac9e3c2e9bc37f9aef30d8848163934fceb27c9 Mon Sep 17 00:00:00 2001 From: Oscar Wallberg Date: Fri, 2 May 2025 04:57:59 +0200 Subject: [PATCH] feat(vim): add NERDTree --- .vimrc | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/.vimrc b/.vimrc index 10f04b9..4d56ebf 100644 --- a/.vimrc +++ b/.vimrc @@ -144,6 +144,7 @@ nmap fb :Buffers nmap fg :Rg "" nmap fe &filetype ==# 'netrw' ? ':Rex' : ':Ex' nmap q :bn \| bd# +nmap tt :NERDTreeToggle " {{{2 Default Mappings @@ -210,6 +211,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" + " {{{2 Install let s:plug_file = expand('$HOME/.vim/autoload/plug.vim') if !filereadable(s:plug_file) @@ -230,6 +245,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 'prabirshrestha/vim-lsp' " Plug 'dense-analysis/ale' @@ -582,4 +599,22 @@ function! s:SetupGitGutter() \\ %4.4(%p%%%)%5.5l:%-3.3v 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()