想象一下我:Vex
在启动 vim 之后。我希望能够按下t
并将选项卡附加到对面的窗口而不是 Netrw 窗口。这可能吗?
如果我按下P
,我可以将文件打开到拆分窗口中,但我希望能够在垂直拆分中的文件中切换,同时让我的 Netrw 窗口可见 - 就像 Sublime 或 Komodo 一样。
可能的?
是的,我已经冲刷过了:h netrw
!
几乎得到了一些.vimrc
重新映射和选项。
它看起来像这样http://i.imgur.com/rUf19SF.png
用法:
shift enter
。这将打开 netrw 作为侧边栏(右侧的一个小拆分窗口)并聚焦它。enter
打开文件。默认情况下,这将在左侧窗口中打开它并聚焦它。control-w control-w
。这将再次聚焦 netrw。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>
注意事项:
每个选项卡中的 netrw “侧边栏”是独立的,这意味着一个选项卡中的当前目录可能与另一个选项卡中的不同。建议?曾考虑在每个“侧边栏”窗口中使用 netrw 缓冲区,但 netrw 在更改目录时使用新缓冲区。
您似乎将 Vim 的“选项卡”与您在几乎所有其他程序中都可以找到的“选项卡”混淆了。
与其他实现不同,Vim 的选项卡不绑定到缓冲区。在 Vim 中,“选项卡”的行为类似于您所说的“工作区”:它们旨在将一个或多个窗口保持在一起。这些窗口可以显示任何缓冲区,您最终可以在多个选项卡的多个窗口中显示相同的缓冲区!
考虑到这一点,随意使用它们是非常错误的。“选项卡”不代表文件,跳转到另一个“选项卡”根本不等同于跳转到另一个文件。
创建的窗口:Vex
是一个普通的窗口。像所有其他窗口一样,它包含在“选项卡”中,不能位于“选项卡”之外。而且你不能在窗口内有“标签”。
所以,基本上,你问的是不可能的。
如果你在 Mac 上,并且这个“其他类似编辑器的功能”对你来说真的很重要(比说,拥抱 Vim 方式更重要),你可以试试这个 MacVim fork ,它在外部添加了一个“常规”文件资源管理器缓冲区/窗口/选项卡三重奏。你也可以试试PIDA,它试图围绕 Vim 构建一个 IDE;包括一个单独的文件资源管理器。
正如 romainl 所说,选项卡不是文件(或缓冲区)。因此,如果我将您的问题重新解释为:“我想按 t 并让文件出现在对面的窗口中……”。然后我建议阅读 :help netrw-C。如果您确实是指“追加”而不是“出现”,那么这将更加复杂,在我努力弄清楚如何做之前,我想知道这就是您的真正意思。最新的 netrw(截至今天,它是 v153f)具有我在上面给出的帮助参考中提到的其他选项。