【问题标题】:Opening a file from .netrw in a specified split在指定的拆分中从 .netrw 打开文件
【发布时间】:2019-06-29 19:12:13
【问题描述】:

这和on SuperUser是同一个问题,但我觉得这里有更好的机会回答,所以...

在 Vim 中,我有四个拆分 - 两个两个 - 左上角的一个 netrw 是打开的。有没有办法从netrw在右下拆分,左下等打开文件?

【问题讨论】:

  • 很遗憾这个问题从未得到回答。
  • @RobertKluin - 等待,希望........ :)

标签: vim netrw


【解决方案1】:

这里有一些提示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 功能。

【讨论】:

  • 有没有办法始终显示光标下文件的预览?
【解决方案2】:

您可以设置g:netrw_chgwin 变量以使netrw 在特定窗口中打开文件。见:

:h netrw-C

所以要使当前窗口成为 netrw 的目标,当你在那个窗口中时输入这个:

:let g:netrw_chgwin = winnr()

另一种方法是在目标窗口(:E) 中启动netrw,点击C 选择它进行编辑并用<c-o> 关闭netrw。

【讨论】:

    【解决方案3】:

    为了将以上答案汇总起来一些灵感:我将以下窗口配置与 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:文件名 结束功能

    【讨论】:

      猜你喜欢
      • 2016-07-21
      • 2020-03-11
      • 1970-01-01
      • 1970-01-01
      • 2016-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多