Bash Vim参数在“"--远程选项卡";

Bash Vim参数在“"--远程选项卡";,bash,vim,archlinux,Bash,Vim,Archlinux,对于上次更新,现在在我的终端中,当我运行vim时,我得到: VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Nov 29 2014 09:48:57) Argument missing after: "--remote-tab" More info with: "vim -h" 以前,我能够在终端中打开vim并运行vim。我不知道如何修复它,也不知道是否只有我一个人有这个问题(特别是在ArchLinux上) 请注意,我使用了。这(可以说)是bash-i

对于上次更新,现在在我的终端中,当我运行
vim
时,我得到:

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Nov 29 2014 09:48:57)
Argument missing after: "--remote-tab"
More info with: "vim -h"
以前,我能够在终端中打开vim并运行vim。我不知道如何修复它,也不知道是否只有我一个人有这个问题(特别是在ArchLinux上)

请注意,我使用了。

这(可以说)是
bash-it
中的一个bug,或者可能只是一个具有不幸副作用的功能

事实上,有一个,显然是由这个问题引起的。最新版本中有一个补丁(出于某种原因,
vim
别名保留在MacOS中)

它为
vim
命令创建一个别名,该命令扩展为
gvim-b--remote选项卡

使用
gvim
而不是
vim
意味着它调用的是
vim
的图形版本,而不是默认的文本版本

-b
选项设置二进制模式。文件说:

-b二进制模式。将设置一些选项,使编辑二进制文件或可执行文件成为可能

我自己也没用过。这可能基本上是无害的,但我建议阅读文档以确定它是否是您真正想要的

--remote选项卡
记录如下(在
vim--help
中;我在手册页中没有看到):

--远程选项卡[-wait][-silent]作为--远程,但使用每个文件的选项卡页

--remote
选项(尝试)编辑Vim服务器中的文件;如果没有可用文件,则文件将正常打开

您遇到的问题是,与
vim
不同,
vim--remote
vim--remote选项卡需要一个或多个文件名参数

使用该别名,您可以键入
vim filename
,它应该可以正常工作。如果没有参数,您将看到您报告的错误消息

如果要在不指定文件名的情况下调用
vim
,则需要覆盖别名。由于您使用的是bash,因此有几种方法可以做到这一点:

\vim
command vim
'vim'

或者您可以考虑禁用或修改该别名。如果您喜欢它的功能,可以编写一个shell函数,如果它有文件名参数,则调用

gvim-b--remote tab…
,如果没有,则只调用
gvim

在回答您的问题时,如果您想了解如何定义
vim
命令,可以使用

type -a vim
(假设您使用的是bash)。
命令无法访问shell函数或别名。

修复:


这是
bash中的一个bug
。这个问题很容易解决。在
~/.bash\u it/aliases/custom.aliases.bash
add
alias vim='/usr/bin/vim'

当您在终端中键入“vim”时,您可能已经为它定义了一个别名或另一个使用其他参数运行的脚本。发布
which vim
@UkuLoskit的输出:“vim-Vi改进了7.4”
which vim
=
/usr/bin/vim
当我在我的
BASH_profile
中注释
源代码$BASH_IT/BASH_IT.sh
时,然后在新的终端窗口中运行
vim
,它会按预期在命令行中打开
vim
。因此,我需要找出
bash-it有什么问题,而这以前是没有问题的?(
哪个
无法访问shell别名。)为了报复我标记另一个(现在已删除)答案而进行的这场无法解释的否决投票是什么?如果没有,请随意解释它的错误和/或我可以如何改进它。不知道为什么否决票,似乎是一个有效的解释。我最初“修复”了bash-it错误,因为它最初是覆盖vim使用mac
mvim
--remote tab
,但这显然是不够的。无论如何,bash it将不再在mac以外的任何设备上为gvim使用vim别名(正如Travis最初编写的那样),如果您希望将gvim别名为vim,则必须编写自己的自定义别名;只需删除现有的一个。但这假设用户不希望运行
vim filename
,而运行
gvim-b--remote tab filename
bash-it
中现有别名的缺点是,当您在没有参数的情况下调用
vim
时,它不起作用,但如果您不这样做(我很少这样做),那也没什么大不了的。