let g:fern#renderer = 'nerdfont' let g:fern#hide_cursor = 1 let g:fern#keepalt_on_edit = 1 let g:fern#default_hidden = 1 let g:fern#default_exclude = '\%(\.DS_Store\|__pycache__\|\.coverage\)' let g:fern#renderer#nerdfont#indent_markers = 1 function! s:fern_local_init() abort setlocal nonumber nmap \ (fern-my-enter-and-tcd) \ (fern-action-enter)(fern-wait)(fern-action-tcd:root) nmap \ (fern-my-leave-and-tcd) \ (fern-action-leave)(fern-wait)(fern-action-tcd:root) nmap \ (fern-my-open-or-enter-and-tcd) \ fern#smart#leaf( \ "\(fern-action-open)", \ "\(fern-my-enter-and-tcd)", \ ) nmap \ (fern-my-open-or-enter) \ fern#smart#drawer( \ "\(fern-my-open-or-enter-and-tcd)", \ "\(fern-action-open-or-enter)", \ ) nmap \ (fern-my-leave) \ fern#smart#drawer( \ "\(fern-my-leave-and-tcd)", \ "\(fern-action-leave)", \ ) nmap \ (fern-my-leave-or-open-or-enter) \ fern#smart#root( \ "(fern-my-leave)", \ "(fern-my-open-or-enter)", \ ) nmap nmap nmap (fern-my-leave-or-open-or-enter) nmap (fern-my-leave) nmap T (fern-action-terminal) nnoremap ~ Fern ~ nmap K nmap N (fern-action-new-path) nmap (fern-action-dirdiff) (fern-action-ex=)DirDiff endfunction augroup my-fern autocmd! * autocmd FileType fern call s:fern_local_init() augroup END function! s:smart_path() abort if !empty(&buftype) || bufname('%') =~# '^[^:]\+://' return fnameescape(fnameescape(fnamemodify('.', ':p'))) endif return fnameescape(fnameescape(fnamemodify(expand('%'), ':p:h'))) endfunction nnoremap ee :Fern =smart_path() -reveal=%:p nnoremap dd :Fern . -toggle -drawer -reveal=%:p nnoremap gg :Fern ~/ogh -reveal=lambdalisue