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

Для тех, которые на Mac, buit в отладчике OpenGL является большим также. Это позволяет Вам осмотреть буферы, состояния, и помогает в нахождении проблем производительности.

25
задан alice 16 February 2011 в 01:44
поделиться

2 ответа

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

  • открывает окно с высотой 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"), '^\(.*[/\\]\)[^/\\]* 

Предлагаемые варианты поведения как 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
,'\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
8
ответ дан 28 November 2019 в 18:01
поделиться

Функция переключения

Вот моя версия функции переключения, основанная на ответе Ника. Теперь вы можете использовать горячую клавишу на любой панели , а не только на панели netrw. В версии Ника это вызывает ошибку, также я сделал некоторую очистку кода и переназначил его на Ctrl-O, потому что Ctrl-E по умолчанию используется для прокрутки вниз на одну строку.

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

Переменная «t: expl_buf_num» является глобальной для текущей вкладки, поэтому у вас может быть один проводник для каждой вкладки. Вы можете изменить его на "w: expl_buf_num", если хотите иметь возможность открывать Проводник в каждом окне.

Держите фокус в Проводнике

Также мне нравится иметь это в моем .vimrc:

" Open file, but keep focus in Explorer
autocmd filetype netrw nmap <c-a> <cr>:wincmd W<cr>
5
ответ дан 28 November 2019 в 18:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: