Подтвердить что ты не робот

Настройка netrw как NERDTree

  • Я использовал nmap <silent> <f2> :NERDTreeToggle<cr> для переключения окна nerdtree. Как я могу сделать то же самое с netrw?

  • Окно nerdtree не отображается в списке буферов (:ls). netrw указан в списке буферов. Как я могу сделать это не указанным?

  • :bn, но команда :bp не работает в окне netrw. Это ошибка?

4b9b3361

Ответ 1

Команда "Vexplore" открывает вертикальный каталог. Вы можете использовать это, добавив следующий код в ваш файл .vimrc для переключения вертикального браузера с помощью Ctrl-E (например):

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

В приведенном выше коде все время открыто открывается окно проводника в левой части экрана; Я использую его с открытыми красными вертикальными окнами.

[ДОПОЛНИТЕЛЬНО] Возможно, вы захотите добавить следующие строки в ваш .vimrc, чтобы улучшить просмотр:

" 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

Ответ 2

Начиная с netrw v150, там :Lexplore, который будет переключать окно netrw в левой части.

Ответ 3

Я только что сделал некоторые улучшения в решении Ник, который исправляет:

  • открывает 100% высокое окно (независимо от разбиения окон)
  • :Lexplore открывает его с левой стороны, :Lexplore! справа
  • перечисление каталога текущего файла (даже в удаленных каталогах)

Поместите эти строки в конец вашего .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

Рекомендуемые варианты поведения, такие как 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

Ответ 4

На самом деле,

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

работает лучше всего для меня.

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

Я думаю, что лучшее поведение описывается опцией 4. Нажимая enter, файл открывается на другом расколе, избегая перенаселения разделов.