25
  1. 以前nmap <silent> <f2> :NERDTreeToggle<cr>はnerdtreeウィンドウを切り替えていました。どうすれば netrw で同じことができますか?

  2. nerdtree ウィンドウはバッファ リスト( :ls)に表示されません。netrw がバッファ リストに表示されます。記載されないようにするにはどうすればよいですか?

  3. :bnコマンドは機能しますが、:bpコマンドは netrw ウィンドウでは機能しません。これはバグですか?

4

7 に答える 7

39

「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
于 2011-04-12T14:33:28.567 に答える
24

v150netrwから、左側:Lexploreのウィンドウを切り替える があります。netrw

于 2014-04-14T20:03:40.137 に答える
7

トグル機能

ニックの答えに基づいた私のバージョンのトグル機能は次のとおりです。これで、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>
于 2018-07-05T20:11:26.443 に答える
6

実際、

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 キーを押すと、ファイルが他の分割で開かれ、分割の過密が回避されます。

于 2012-06-05T17:28:07.453 に答える
1
" Toggle Vexplore with Ctrl-E

function! ToggleVExplorer()
      Lexplore
      vertical resize 30
endfunction
map <silent> <C-E> :call ToggleVExplorer()<CR>

簡素化する

于 2020-11-11T21:31:54.777 に答える
0

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

" ---------------------------------------------------------------
于 2021-06-13T17:13:50.077 に答える