如何在路径中包含“+”符号时使用vim

3

我有一个MATLAB项目,其中一些文件夹以+(包)开头。当我尝试从命令行使用vim打开这些文件夹时,例如:

vim +mytools/extrema.m

我遇到了一个错误。
E492: Not an editor command mytools/extrema.m

当我尝试使用:e从vim内部加载这些文件时,也会出现这种情况。当使用:Explore时,我可以进入文件夹并在那里打开文件而没有任何问题。
有没有办法配置vim以处理这些路径?
注意:在这种情况下,我无法重命名文件夹,因为MATLAB包必须以+号开头。
1个回答

4
您可以按照以下方式转义加号:

您可以通过以下方法转义加号:

vim -- +mytools/extrema.m
:e \+mytools/extrema.m
--表示选项的结尾;否则+会被解释为将光标定位的选项。第二种方法应在输入字符:e \+后进行制表符自动完成。 (请注意,:e +<TAB>不会自动完成,因为:edit可以选择将[++opt][+cmd]作为参数。)
有关更多详细信息,请参见man vim:help edit更新:尝试
:arga +mytools/extrema.m
:argu 1

这种方法一定可以让你在打开的Vim会话中,输入字符:arga +后进行Tab键自动补全。

:arga[dd]将其参数添加到参数列表中,而:argu[ment]编辑参数列表中的[count]参数。参数列表可以使用:ar[gs]命令显示,当前的参数用方括号框起来。

这种方法能够实现的原因是:argadd不像:edit那样接受标准语法,比如[++opt] [+cmd]

更多详细信息,请参阅:help arglist


谢谢,这似乎有效。如果文件名自动补全能正常工作就好了。+ 部分无法自动补全,但在第一个 / 之后,该文件夹中的所有文件都可以自动补全。 - Marius
+ 这部分在我的系统上可以使用 Tab 键自动完成。 - Micah Smith
所以tabcomplete对于第一个方法确实有效。第二种方法(在vim中)也会得到补全,但是它会完成为\+mytools/extrema.m,然后我会得到E172:只允许一个文件名。同样的情况也发生在没有或一个\的情况下。非常奇怪。 - Marius
@Marius 你说得对,之前的第二种方法(已编辑并删除)是不正确的。--选项对于:e无效。然而,在我的系统上,我确实可以像上面描述的那样获得第二种方法的标签完成。你试试看行不行? - Micah Smith
第二个选项对我来说无法自动补全,但至少现在我可以打开那些文件了。 - Marius

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接