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

Han*_*rix 7 vim netrw

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

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

可能?

是的,我已经洗了:h netrw!

uni*_*one 8

几乎得到了一些.vimrc重映射和选项.

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

用法:

  1. 运行vim.
  2. shift enter.这将打开netrw作为侧边栏(右侧的一个小分割窗口)并将其聚焦.
  3. 像往常一样浏览并点击enter打开文件.这将默认在左侧窗口中打开并对焦.
  4. control-w control-w.这将再次集中于netrw.
  5. 像往常一样浏览,但这次点击control-enter打开一个文件.这将在一个新的选项卡中打开它,该选项卡还包含netrw侧边栏.

.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>
Run Code Online (Sandbox Code Playgroud)

注意事项:

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

  • @Lanti是的,只需将autocmd拆分为两行`autocmd VimEnter*rightbelow 20vs`然后在它下面的`autocmd VimEnter*e .` (2认同)

rom*_*inl 2

您似乎将 Vim 的“选项卡”与几乎所有其他程序中都能找到的“选项卡”混淆了。

与其他实现不同,Vim 的选项卡不绑定到缓冲区。在 Vim 中,“选项卡”的行为类似于“工作区”:它们旨在将一个或多个窗口保持在一起。这些窗口可以显示任何缓冲区,并且您很可能最终会在多个选项卡的多个窗口中显示相同的缓冲区!

考虑到这一点,按照你想要的方式使用它们将是非常错误的。“选项卡”不代表文件,跳转到另一个“选项卡”根本不等于跳转到另一个文件。

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

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

如果您使用的是 Mac,并且这种“类似其他编辑器的功能”对您来说确实很重要(比采用 Vim 方式更重要),您可以尝试这个 MacVim 分支,它在外部添加了一个“常规”文件浏览器缓冲区/窗口/选项卡三重奏。你也可以尝试PIDA,它试图围绕 Vim 构建一个 IDE;包括一个单独的文件浏览器。