我可以强制gVim在新标签中打开拖入的文件吗?

时间:2009-12-11 23:21:07

标签: windows vim tabs drag-and-drop editor

我希望gVim打开拖入其中的文件,在新标签页中打开,而不是替换当前文件。 This question在正确的轨道上,但我希望能够运行多个gVim实例,只能将文件拖到我想要的窗口。

我在Windows 7上运行。

8 个答案:

答案 0 :(得分:4)

您可以先键入:tabe,然后拖放文件。我无法完全确认这一点(我只有一台Mac),但我认为这最终会显示:tabe filename。然后你可以点击进入和退出...

答案 1 :(得分:4)

不,你不能,在Windows应用程序(OLE DoDragDrop)的实现中指定拖放的默认操作。尚未实现在新选项卡中打开已删除的文件,因此不会。但是gVim是开源的...所以你可以提交一个补丁,如果你真的想要这个:)

答案 2 :(得分:2)

在gvim中打开一个新文件并不能替换当前打开的文件。新文件在新缓冲区中打开,缓冲区显示。您可以使用:b命令在缓冲区之间切换。在您的情况下,您只需删除文件,然后使用:tabedit创建一个新选项卡,并使用:b <filename>将选项卡缓冲区切换为所需的选项卡。当然,这并不是你正在寻找的东西,但这对我来说已经足够了。

答案 3 :(得分:1)

您可以将以下选项添加到vimrc。 VIM将使用新选项卡打开该文件。您也可以拖放到gVim,它将在新标签页中打开。它适用于我,我也在Windows 7上使用。

  

:au BufAdd,BufNewFile *嵌套标签sball

答案 4 :(得分:1)

您可以在.vimrc

中添加以下内容
autocmd BufReadPost * tab ball

这将打开所有缓冲区的选项卡,包括新删除的文件。请注意,对于所有缓冲区,以及已在gvim中打开的缓冲区也是如此。

答案 5 :(得分:0)

由于文件无法正确拖放到gvim,我使用批处理文件来完成此操作。拖动的文件可以删除到批处理文件或其快捷方式。它也可以用于Windows资源管理器的发送到菜单。

以下是批处理文件的内容(更改gvim服务器的路径和名称):

@ECHO OFF
:TOP
IF (%1) == () GOTO END
    I:\apps\vim\vim73\gvim.exe --servername GVIM --remote-tab "%1"
SHIFT
GOTO TOP

:END
ECHO End

答案 6 :(得分:0)

这些Windows友好映射可以使这个问题更加可忍受。仍然需要记住在拖动文件之前按Ctrl-T ...

" CTRL-T opens a new tab, CTRL-W closes tab, CTRL-Left/Right switches tabs
noremap   <C-T> :tabnew<return>
noremap   <C-W> :tabclose<return>
noremap   <C-Left> :tabprevious<return>
noremap   <C-Right> :tabNext<return>

答案 7 :(得分:0)

  1. 将文件拖至Vim时按住CTRL将在Vim中拆分的新窗口中打开新文件。
  2. 然后只需使用<C-W>T as I found here.
  3. 将该拆分转换为新标签即可