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

kaj*_*aco 43 vim bash ubuntu tabs alias

我在.bashrc中放了一些别名,在gvim中打开一组项目文件,每个项目都在自己的标签中:

gvim -p <list of file names using absolute paths>
Run Code Online (Sandbox Code Playgroud)

这一切都很好,除了我可能想要在任何给定时间之间移动的几组文件(我当前的项目使用Ruby on Rails,所以这解释了).如果我可以将新选项卡附加到现有的gvim实例,真正棒极了的是什么.在我的最后一个位置,我在Vista上工作; 在文件名我身边这让通过打开一堆空的gvim标签,这让我右击并选择"在现有的无名称gvim中打开." 现在我使用Ubuntu,在上下文菜单中没有这样的东西.有没有办法从命令行执行此操作?

Aym*_*ieh 70

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

$ gvim --servername GVIM  # GVIM is the server name. It can be anything.
Run Code Online (Sandbox Code Playgroud)

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

$ gvim --servername GVIM --remote-tab file1 file2 file3 ...
Run Code Online (Sandbox Code Playgroud)

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

$ gvim --servername GVIM --remote-send '<Esc>:wqa<CR>'
Run Code Online (Sandbox Code Playgroud)

  • http://stackoverflow.com/questions/936501/let-gvim-always-run-a-single-instance将其保留为一个实例. (2认同)

Ste*_*e K 20

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

:tabnew
:e .
Run Code Online (Sandbox Code Playgroud)

这将打开一个新的空白标签页并打开文件浏览器.您可以通过鼠标单击或使用键盘.单击或按下要打开它的文件上的回车键.尝试使用键盘将光标定位在要打开的文件上,然后按"t".这将在新选项卡中打开所选文件,从而在第一个选项卡中保持文件浏览器处于打开状态.这可能是打开一堆文件的快捷方式.

使用标签页可以做很多事情,可以让生活更轻松.要访问Vim在线帮助手册中的相关部分,请键入:h tabpage.

  • 你可以将它缩短为`:tabe .`.如果要从同一目录打开另一个文件,可以尝试`:tabe%:h` (3认同)

mat*_*rns 12

想要Windows上下文菜单允许您在当前打开的gvim窗口的新选项卡中打开文件吗?

将其另存为名为temp.reg的文件,然后双击它以将设置添加到注册表.如果您的路径不同,请务必修改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\" \"%*\""
Run Code Online (Sandbox Code Playgroud)

您现在将拥有这样的上下文菜单:

vim上下文菜单


Jan*_*ska 6

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

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

Exec=/home/user/bin/my_gvim_script.sh %F
Run Code Online (Sandbox Code Playgroud)