在Vim/netrw中垂直分割打开文件

17

如果我使用vim .打开vim,netrw会为我提供当前目录中文件和目录的漂亮列表。

如果我使用v打开文件,该文件将在屏幕左侧非常窄的分割窗口中打开,而目录列表仍然在屏幕右侧宽分割窗口中保持打开状态。

理想情况下,我希望它具有相反的效果,即在屏幕左侧的窄分割窗口中显示目录列表,在屏幕右侧的宽分割窗口中显示文件。

4个回答

26

Netrw v153及其后续版本(2014年5月28日)提供了:Lexplore命令,默认情况下在左侧打开目录列表,并在右侧打开文件(通过按下<cr>键)。


看起来完美,谢谢。你能给我一个提示在哪里安装新版本吗?我需要卸载现有的netrw吗? - jx12345

11

6
我相信这可以得到改进,你可以编写一个定制映射来针对 netrw 文件类型。

将以下代码添加到你的 .vimrc 文件中:

" open file vertically to the right
augroup netrw_mappings
    autocmd!
    autocmd filetype netrw call Netrw_mappings()
augroup END
function! OpenToRight()
  :rightbelow vnew
  :wincmd p
  :normal P
endfunction
function! Netrw_mappings()
    noremap V :call OpenToRight()<cr>
endfunction

唯一需要注意的是,您需要使用 V 而不是 v。由于某种原因,我无法覆盖 netrwv 命令,但是使用大写字母似乎更好,因为它不会覆盖默认设置。

1
太棒了!- 抱歉有点冒昧,但是...是否可以控制分割线的宽度? - jx12345
1
@jx12345:你可以运行像 :30winc > 这样的命令来改变窗口宽度。 - Jonathan.Brink
nnoremap <buffer> v :call OpenToRight()<cr> 将添加 <buffer> - undefined

0
你可以将这段代码添加到你的 .vimrc 文件中,它与 v 模式很好地配合使用。
set splitright
默认情况下,netrw 插件会遵循你的 splitright 设置(由 g:netrw_altv 变量的默认值 =&spr 表示),以决定在哪里打开新窗口。
我认为 netrw 在 Vim 启动时读取 splitright 的值。因此,在一个会话中使用 :set splitright 命令设置 splitright 不会影响 netrw 在该会话中的行为。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接