以前
nmap <silent> <f2> :NERDTreeToggle<cr>
はnerdtreeウィンドウを切り替えていました。どうすれば netrw で同じことができますか?nerdtree ウィンドウはバッファ リスト(
:ls
)に表示されません。netrw がバッファ リストに表示されます。記載されないようにするにはどうすればよいですか?:bn
コマンドは機能しますが、:bp
コマンドは netrw ウィンドウでは機能しません。これはバグですか?
7 に答える
「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
v150netrw
から、左側:Lexplore
のウィンドウを切り替える があります。netrw
トグル機能
ニックの答えに基づいた私のバージョンのトグル機能は次のとおりです。これで、netrw のペインだけでなく、どのペインからでもホットキーを使用できるようになりました。Nick のバージョンではエラーが発生します。また、コードをクリーンアップして Ctrl-O に再マップしました。これは、Ctrl-E がデフォルトで 1 行下にスクロールするために使用されるためです。
" 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" は現在のタブに対してグローバルであるため、タブごとに 1 つの Explorer を持つことができます。すべてのウィンドウでエクスプローラーを開くことができるようにする場合は、「w:expl_buf_num」に変更できます。
エクスプローラーでフォーカスを維持する
また、これを .vimrc に入れたい:
" Open file, but keep focus in Explorer
autocmd filetype netrw nmap <c-a> <cr>:wincmd W<cr>
実際、
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 キーを押すと、ファイルが他の分割で開かれ、分割の過密が回避されます。
" Toggle Vexplore with Ctrl-E
function! ToggleVExplorer()
Lexplore
vertical resize 30
endfunction
map <silent> <C-E> :call ToggleVExplorer()<CR>
簡素化する
Nick'sに似たより単純なアプローチとして、.vimrc でこれを使用して F9 でトグル可能 (および非常に NERDTree に似ている) にすることができます。
" ---------------------------------------------------------------
" File Explorer start
let g:netrw_banner = 0
let g:netrw_liststyle = 3
let g:netrw_browse_split = 4
let g:netrw_altv = 1
let g:netrw_winsize = 15
" Toggle Vexplore with F9
map <silent> <F9> :Lexplore<CR>
" File Explorer end
" ---------------------------------------------------------------