当前位置: 首页>>技术教程>>正文


在多个(新)选项卡中打开现有Gvim中的文件

, , , ,

问题描述

我在.bashrc中放置了一些别名,以在gvim中打开一组项目文件,每个文件都位于各自的选项卡中:

gvim -p <list of file names using absolute paths>

一切都很好,除了我可能希望在任何给定的时间之间移动几组文件(我当前的项目使用Ruby on Rails,因此对此进行了解释)。如果我可以将新选项卡附加到gvim的现有实例上,那将是真的很棒。在上一个职位上,我从事Vista的工作。我通过在gvim中打开一堆空选项卡解决了这个问题,这使我可以使用文件名right-click并选择“在现有的No-Name gvim中打开”。现在,我使用Ubuntu,并且上下文菜单中没有这样的东西。有什么办法可以从命令行执行此操作吗?

最佳解决办法

如果vim是使用clientserver选项编译的,则可以执行此操作。使用以下标志启动您的vim实例:

$ gvim --servername GVIM  # GVIM is the server name. It can be anything.

要在此实例中打开更多选项卡,可以运行以下命令:

$ gvim --servername GVIM --remote-tab file1 file2 file3 ...

vim中的clientserver功能非常方便。不限于打开文件;它可以用来通过命令行向vim发送任何命令。例如,要远程关闭vim实例,可以使用:

$ gvim --servername GVIM --remote-send '<Esc>:wqa<CR>'

次佳解决办法

在Gvim内部,键入:tabe {file_name}。这将在新选项卡中打开命名文件。如果您不喜欢输入长文件名,请尝试以下操作:

:tabnew
:e .

这将打开一个新的空白标签页并打开文件浏览器。您可以用鼠标单击或使用键盘。在要打开的文件上单击或单击Enter键。尝试使用键盘将光标置于要打开的文件上,然后按’t’。这将在新选项卡中打开所选文件,并在第一个选项卡中保持文件浏览器处于打开状态。这可能是打开一堆文件的快速方法。

标签页可以做很多事情,可能会使生活更轻松。要进入Vim在线帮助手册中的相关部分,请输入:h tabpage

第三种解决办法

是否希望Windows上下文菜单允许您在当前打开的gvim窗口的新选项卡中打开文件?

将其另存为名为temp.reg和double-click的文件,以将设置添加到注册表中。如果您不同,请确保修改vim的路径。

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\Shell\Open with &Vim]
[HKEY_CLASSES_ROOT\*\Shell\Open with &Vim\command]
@="\"C:\\Program Files (x86)\\Vim\\vim73\\gvim.exe\" -p --remote-tab-silent \"%1\" \"%*\""

现在,您将有一个上下文菜单,如下所示:

bash,ubuntu,vim,tabs,alias

第四种办法

Linux用户可以使用以下脚本:

#!/bin/bash

ANS=`pgrep -fx "gvim --servername GVIM"`

echo $@

if [[ ! $ANS ]]; then
    gvim --servername GVIM
fi

if [[ $1 ]]; then
    gvim --servername GVIM --remote-tab "${@}"
fi

然后编辑gvim.desktop文件以使用此脚本:

Exec=/home/user/bin/my_gvim_script.sh %F

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7283.html,未经允许,请勿转载。