Netrw将文件打开到对面垂直窗口的选项卡中

时间:2013-02-02 18:41:07

标签: vim netrw

想象一下,在启动vim后我有:Vex。我希望能够按t并将选项卡附加到相反的窗口而不是Netrw窗口。这可能吗?

如果我按下P我可以将文件打开到分割窗口中,但我希望能够在我的Netrw窗口可见的情况下在垂直分割中浏览文件 - 就像Sublime或Komodo一样。 / p>

可能的?

是的,我已经搜查了:h netrw

3 个答案:

答案 0 :(得分:8)

几乎可以通过一些.vimrc重映射和选项获得它。

看起来像http://i.imgur.com/rUf19SF.png

<强>用法:

  1. run vim。
  2. 点击shift enter。这将打开netrw作为侧边栏(右侧的一个小分割窗口)并将其聚焦。
  3. 像往常一样浏览并点击enter打开文件。这将默认在左侧窗口中打开并对焦。
  4. 点击control-w control-w。这将再次关注netrw。
  5. 照常浏览,但这次点击control-enter打开文件。这将在一个新的标签中打开它,该标签还包含netrw边栏。
  6. .vimrc配置:

    " netrw magic
    " enable mouse usage. makes it easier to browse multiple tabs
    set mouse=a
    " hide netrw top message
    let g:netrw_banner=0
    " tree listing by default
    let g:netrw_liststyle=3
    " hide vim swap files
    let g:netrw_list_hide='.*\.swp$'
    " open files in left window by default
    let g:netrw_chgwin=1
    " remap shift-enter to fire up the sidebar
    nnoremap <silent> <S-CR> :rightbelow 20vs<CR>:e .<CR>
    " the same remap as above - may be necessary in some distros
    nnoremap <silent> <C-M> :rightbelow 20vs<CR>:e .<CR>
    " remap control-enter to open files in new tab
    nmap <silent> <C-CR> t :rightbelow 20vs<CR>:e .<CR>:wincmd h<CR>
    " the same remap as above - may be necessary in some distros
    nmap <silent> <NL> t :rightbelow 20vs<CR>:e .<CR>:wincmd h<CR>
    

    <强>注意事项:

    每个选项卡中的netrw“侧边栏”是独立的,这意味着选项卡中的当前目录在另一个选项卡中可能不同。建议?考虑在每个“侧边栏”窗口中使用netrw缓冲区,但netrw在更改目录时使用新缓冲区。

答案 1 :(得分:2)

您似乎将Vim的“标签”与几乎所有其他程序中都可以找到的“标签”相混淆。

与其他实现不同,Vim的选项卡不依赖于缓冲区。在Vim中,“tabs”的行为就像你所说的“workspaces”:它们是为了将一个或多个窗口保持在一起。这些窗口可以显示任何缓冲区,您最终可以在多个选项卡中的多个窗口中显示相同的缓冲区!

考虑到这一点,按照你想要的方式使用它们非常错误。 “标签”不代表文件而跳转到另一个“标签”并不等同于跳转到另一个文件

:Vex创建的窗口是普通窗口。与所有其他窗口一样,它包含在“选项卡”中,不能存在于“选项卡”之外。并且你不能在窗口内有“标签”。

所以,基本上,你问的是不可能。

如果您使用的是Mac,并且这个“其他类似编辑器的功能”对您来说非常重要(比说,接受Vim方式更重要),您可以试试{{3在缓冲区/窗口/选项卡三重奏中添加“常规”文件资源管理器外部。您也可以尝试this MacVim fork尝试围绕Vim构建IDE;包括一个单独的文件浏览器。

答案 2 :(得分:1)

正如romainl所说,标签不是文件(或缓冲区)。所以,如果我将你的问题重新解释为:&#34;我想按t并在相反的窗口中显示文件 ...&#34;。然后我建议阅读:help netrw-C。如果你的意思是&#34;追加&#34;而不是&#34;出现&#34;然后更多参与,在我花费精力去弄清楚如何这样做之前我想知道那是你真正的意思。最新的netrw(截至今天,那个v153f)还有其他选项,我在上面的帮助参考中提到了这些选项。