【发布时间】:2016-07-23 07:24:26
【问题描述】:
想象一下我在启动 vim 后有:Vex。我希望能够按t 并将选项卡附加到对面的窗口而不是 Netrw 窗口。这可能吗?
如果我按P,我可以将文件打开到拆分窗口中,但我希望能够在垂直拆分中的文件之间切换,同时让我的 Netrw 窗口可见 - 就像 Sublime 或 Komodo 一样。
可能吗?
是的,我已经搜索了:h netrw!
【问题讨论】:
想象一下我在启动 vim 后有:Vex。我希望能够按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 在更改目录时使用新缓冲区。
【讨论】:
autocmd VimEnter * :Vexplore给不同的netrw。
autocmd VimEnter * rightbelow 20vs,然后在其下方 autocmd VimEnter * e .
t。要在同一选项卡中打开文件并自动关闭 netrw,您将需要一个新地图。像nmap <silent> b <CR>:wincmd l<CR>:q<CR> 这样的东西,然后点击b。我不知道如何在“背景”中打开文件......也许映射到将当前选项卡编号保存在变量中的函数,在新选项卡中打开文件然后移回原始选项卡会做。
您似乎将 Vim 的“选项卡”与几乎在所有其他程序中都可以找到的“选项卡”混淆了。
与其他实现不同,Vim 的选项卡不绑定到缓冲区。在 Vim 中,“选项卡”的行为类似于您所说的“工作区”:它们旨在将一个或多个窗口保持在一起。这些窗口可以显示任何缓冲区,您最终可以在多个选项卡的多个窗口中显示相同的缓冲区!
考虑到这一点,按你的意愿使用它们是非常错误的。 “标签”不代表文件,跳转到另一个“标签”根本不等同于跳转到另一个文件。
:Vex创建的窗口是一个普通窗口。像所有其他窗口一样,它包含在“选项卡”中,不能位于“选项卡”之外。而且你不能在窗口内有“标签”。
所以,基本上,你问的是不可能的。
如果您使用的是 Mac,并且这个“类似其他编辑器的功能”对您真的很重要(比接受 Vim 方式更重要),您可以尝试 this MacVim fork它在缓冲区/窗口/选项卡三重奏的外部添加了一个“常规”文件浏览器。你也可以试试PIDA,它试图围绕 Vim 构建一个 IDE;包括一个单独的文件浏览器。
【讨论】:
正如 romainl 所说,选项卡不是文件(或缓冲区)。因此,如果我将您的问题重新解释为:“我想按 t 并让 files 出现在对面的窗口中......”。然后我建议阅读 :help netrw-C。如果您确实是指“追加”而不是“出现”,那么这将更加复杂,在我努力弄清楚如何做之前,我想知道这就是您的真正意思。最新的 netrw(截至今天,即 v153f)具有我在上面提供的帮助参考中提到的其他选项。
【讨论】: