-
Я использовал
nmap <silent> <f2> :NERDTreeToggle<cr>
для переключения окна nerdtree. Как я могу сделать то же самое с netrw? -
Окно nerdtree не отображается в списке буферов (
:ls
). netrw указан в списке буферов. Как я могу сделать это не указанным? -
:bn
, но команда:bp
не работает в окне netrw. Это ошибка?
Настройка netrw как NERDTree
Ответ 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, файл открывается на другом расколе, избегая перенаселения разделов.