【发布时间】:2019-06-29 19:12:13
【问题描述】:
这和on SuperUser是同一个问题,但我觉得这里有更好的机会回答,所以...
在 Vim 中,我有四个拆分 - 两个两个 - 左上角的一个 netrw 是打开的。有没有办法从netrw在右下拆分,左下等打开文件?
【问题讨论】:
-
很遗憾这个问题从未得到回答。
-
@RobertKluin - 等待,希望........ :)
这和on SuperUser是同一个问题,但我觉得这里有更好的机会回答,所以...
在 Vim 中,我有四个拆分 - 两个两个 - 左上角的一个 netrw 是打开的。有没有办法从netrw在右下拆分,左下等打开文件?
【问题讨论】:
这里有一些提示https://superuser.com/questions/377501/keep-cursor-in-netrw-window-when-browsing-files-in-vim
把它放在你的 .vimrc 中,
let g:netrw_preview = 1
要配置垂直预览拆分,然后当光标在所需文件上时,键入 p 以打开预览窗口。要关闭窗口,请键入 CtrlWz。
在 vim 中使用的术语是“预览窗口”。要了解更多信息,请参阅
:help netrw-preview
:help CTRL-W_z
或者只是
:help netrw
并浏览目录以获取其他浏览命令和其他 netrw 功能。
【讨论】:
您可以设置g:netrw_chgwin 变量以使netrw 在特定窗口中打开文件。见:
:h netrw-C
所以要使当前窗口成为 netrw 的目标,当你在那个窗口中时输入这个:
:let g:netrw_chgwin = winnr()
另一种方法是在目标窗口(:E) 中启动netrw,点击C 选择它进行编辑并用<c-o> 关闭netrw。
【讨论】:
为了将以上答案汇总起来一些灵感:我将以下窗口配置与 netrw 一起使用(连同 :let g:netrw_liststyle = 2):
-------------------------------- ... Netrw-split:左上溢出 -------------------------------- ... | | | 工作|工作|工作| 窗口 1 |窗口 2 |窗口 3 | ... | | |因此,我可以从其他每个窗口直接进入 Netrw-split。然后我把我的 .vimrc:
augroup netrw 自动命令! autocmd WinLeave * if &ft !=# "netrw" |让 g:netrw_chgwin = winnr() |万一 autocmd 文件类型 netrw 调用 Netrw_mappings() augroup 结束WinLeave 命令将全局 g:netrw_chgwin 变量设置为刚刚左边的窗口(除非我们在 netrw 窗口中)。因此 netrw 将在我访问它的窗口中打开任何文件,并且由于窗口布局,我可以从任何其他窗口访问 netrw。
autocmd 'filetype' 还用于在我访问 netrw 的窗口中创建一个新文件。对于这个 netrw 的 '%' 命令必须被覆盖:
功能! Netrw_mappings() noremap % :call CreateInLastWindow()使用在窗口 g:netrw_chgwin 中创建新文件的函数:
功能! CreateInLastWindow() let l:filename = input("新文件名:") 让 l:netrwdir = b:netrw_curdir 执行 g:netrw_chgwin 。 “wincmd w” 执行“编辑”。 l:netrwdir.'/'.l:文件名 结束功能【讨论】: