Question

  1. J'ai utilisé nmap <silent> <f2> :NERDTreeToggle<cr> pour basculer nerdtree fenêtre.Comment puis-je faire de même avec netrw?

  2. nerdtree fenêtre n'est pas affichée dans la mémoire tampon de la liste(:ls).netrw est inscrite dans la mémoire tampon de la liste.Comment puis-je faire ce pas dans la liste?

  3. :bn commande fonctionne mais :bp la commande ne fonctionne pas dans le netrw fenêtre.Est-ce un bug?

Était-ce utile?

La solution

Le "Vexplore de" commande " ouvre une verticale répertoire du navigateur.Vous pouvez construire sur cette en ajoutant le code suivant à votre .fichiers vimrc pour basculer à la verticale navigateur avec Ctrl-E (pour l'exemple):

" 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>

Le code ci-dessus tente d'ouvrir la fenêtre de l'Explorateur sur le côté gauche de l'écran à tout moment;Je l'utilise avec de multiples split vertical fenêtres ouvertes.

[FACULTATIF] Vous aimeriez ajouter les lignes suivantes dans votre .vimrc pour améliorer l'expérience de navigation:

" 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

Autres conseils

En commençant par netrw v150, il y a :Lexplore, qui permet de basculer d'un netrw fenêtre sur le côté gauche.

J'ai juste fait quelques améliorations sur Nick solution qui fixe:

  • s'ouvre à 100% haut de la fenêtre (indépendant de la fenêtre de splits)
  • :Lexplore l'ouvre sur le côté gauche, :Lexplore! sur la droite
  • d'inscription au répertoire du fichier actuel (même sur le répertoire distant)

Mettre ces lignes à la fin de votre .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

Les options proposées pour se comporter comme 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

En fait,

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

fonctionne le mieux pour moi.

 *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.

Je pense que le meilleur comportement est décrit par l'option 4.En appuyant sur enter, le fichier est ouvert sur l'autre de scission, d'éviter une surpopulation de fractionnements.

Fonction de bascule

Voici ma version de la fonction de bascule, basé sur la réponse de Nick.Vous pouvez désormais utiliser la touche de raccourci partir de n'importe quel volet, non pas seulement à partir de netrw du volet.Dans de Nick version, il provoque une erreur, aussi j'ai fait un peu de nettoyage de code et de le reconfigurer à Ctrl-O, parce que Ctrl-E est utilisé par défaut pour faire défiler vers le bas ligne par ligne.

" 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" est global pour l'onglet en cours, de sorte que vous pouvez avoir un Explorateur par onglet.Vous pouvez la changer en "w:expl_buf_num" si vous voulez être en mesure d'ouvrir l'Explorateur dans chaque fenêtre.

Garder le focus dans l'Explorateur

Aussi, je tiens à avoir ce à mon .vimrc:

" Open file, but keep focus in Explorer
autocmd filetype netrw nmap <c-a> <cr>:wincmd W<cr>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top