nerd vim netrw

vim nerd tree



ConfiguraciĆ³n de netrw como NERDTree (5)

  1. Utilicé nmap <silent> <f2> :NERDTreeToggle<cr> para alternar la ventana nerdtree. ¿Cómo puedo hacer lo mismo con netrw?

  2. La ventana nerdtree no se muestra en la lista del búfer ( :ls ). netrw aparece en la lista de búferes. ¿Cómo puedo hacer que no esté en la lista?

  3. :bn comando :bn funciona pero el comando :bp no funciona en la ventana netrw. ¿Es esto un error?


Función de palanca

Aquí está mi versión de la función de alternar, basada en la respuesta de Nick. Ahora puede usar las teclas de acceso rápido desde cualquier panel , no solo desde el panel de netrw. En la versión de Nick se produce un error, también realicé algunos códigos de limpieza y los volví a asignar a Ctrl-O, porque Ctrl-E se usa de forma predeterminada para desplazarse hacia abajo una línea.

" Toggle Vexplore with Ctrl-O function! ToggleVExplorer() if exists("t:expl_buf_num") let expl_win_num = bufwinnr(t:expl_buf_num) let cur_win_num = winnr() if expl_win_num != -1 while expl_win_num != cur_win_num exec "wincmd w" let cur_win_num = winnr() endwhile close endif unlet t:expl_buf_num else Vexplore let t:expl_buf_num = bufnr("%") endif endfunction map <silent> <C-O> :call ToggleVExplorer()<CR>

La variable "t: expl_buf_num" es global para la pestaña actual, por lo que puede tener un Explorador por pestaña. Puede cambiarlo a "w: expl_buf_num" si desea poder abrir el Explorador en cada ventana.

Mantente enfocado en Explorer

También me gusta tener esto en mi .vimrc:

" Open file, but keep focus in Explorer autocmd filetype netrw nmap <c-a> <cr>:wincmd W<cr>


A partir de netrw v150, hay :Lexplore , que alternará una ventana netrw en el lado izquierdo.


Acabo de hacer algunas mejoras en la solución de Nick que corrige:

  • abre el 100% de la ventana alta (independiente de las divisiones de ventana)
  • :Lexplore abre en el lado izquierdo :Lexplore! a la derecha
  • listado del directorio del archivo actual ( incluso en directorios remotos )

Coloca estas líneas al final de tu .vimrc:

com! -nargs=* -bar -bang -complete=dir Lexplore call netrw#Lexplore(<q-args>, <bang>0) fun! Lexplore(dir, right) if exists("t:netrw_lexbufnr") " close down netrw explorer window let lexwinnr = bufwinnr(t:netrw_lexbufnr) if lexwinnr != -1 let curwin = winnr() exe lexwinnr."wincmd w" close exe curwin."wincmd w" endif unlet t:netrw_lexbufnr else " open netrw explorer window in the dir of current file " (even on remote files) let path = substitute(exists("b:netrw_curdir")? b:netrw_curdir : expand("%:p"), ''^/(.*[///]/)[^///]*$'',''/1'',''e'') exe (a:right? "botright" : "topleft")." vertical ".((g:netrw_winsize > 0)? (g:netrw_winsize*winwidth(0))/100 : -g:netrw_winsize) . " new" if a:dir != "" exe "Explore ".a:dir else exe "Explore ".path endif setlocal winfixwidth let t:netrw_lexbufnr = bufnr("%") endif endfun

Opciones sugeridas para comportarse como NERDTree:

" absolute width of netrw window let g:netrw_winsize = -28 " do not display info on the top of window let g:netrw_banner = 0 " tree-view let g:netrw_liststyle = 3 " sort is affecting only: directories on the top, files below let g:netrw_sort_sequence = ''[//]$,*'' " use the previous window to open file let g:netrw_browse_split = 4


Actualmente,

let g:netrw_browse_split = 4 let g:netrw_altv = 1

funciona mejor para mi

*g:netrw_browse_split* when browsing, <cr> will open the file by: =0: re-using the same window =1: horizontally splitting the window first =2: vertically splitting the window first =3: open file in new tab =4: act like "P" (ie. open previous window) Note that |g:netrw_preview| may be used to get vertical splitting instead of horizontal splitting.

Creo que el mejor comportamiento se describe en la opción 4. Al presionar Intro, el archivo se abre en la otra división, evitando una sobrepoblación de divisiones.


El comando ''Vexplore'' abre un navegador de directorio vertical. Puede desarrollar esto agregando el siguiente código a su archivo .vimrc para alternar el navegador vertical con Ctrl-E (por ejemplo):

" Toggle Vexplore with Ctrl-E function! ToggleVExplorer() if exists("t:expl_buf_num") let expl_win_num = bufwinnr(t:expl_buf_num) if expl_win_num != -1 let cur_win_nr = winnr() exec expl_win_num . ''wincmd w'' close exec cur_win_nr . ''wincmd w'' unlet t:expl_buf_num else unlet t:expl_buf_num endif else exec ''1wincmd w'' Vexplore let t:expl_buf_num = bufnr("%") endif endfunction map <silent> <C-E> :call ToggleVExplorer()<CR>

El código anterior intenta abrir la ventana del Explorador en el lado izquierdo de la pantalla en todo momento; Lo uso con múltiples ventanas verticales abiertas abiertas.

[OPCIONAL] Es posible que desee agregar las siguientes líneas a su .vimrc para mejorar la experiencia de navegación:

" Hit enter in the file browser to open the selected " file with :vsplit to the right of the browser. let g:netrw_browse_split = 4 let g:netrw_altv = 1 " Change directory to the current buffer when opening files. set autochdir