Vim gF 应该打开文件并跳转到指定行。

8

我尝试了gF,但它似乎不像在:help gF中所述那样工作。

如果光标位于条目x.c上,并键入gf,则会打开该文件。

如果光标位于条目x.c:3上,并键入gF,则会出现E447: Can't find file "x.c:3" in path。其中,冒号后的数字3应该是告诉vim跳转到第3行。

我错过了什么吗?


对我来说一切正常。检查一下 :map gf 中是否有任何映射。 - Magnun Leno
1个回答

20

输入:set isfname

它会显示一个依赖于操作系统的字符列表,这些字符被认为可能是文件名的一部分。在我的系统(Windows)中,列表中出现了:这一列。

isfname=@,48-57,/,\,.,-,_,+,,,#,$,%,{,},[,],:,@-@,!,~,=
因此,gF不会将冒号视为文件名和行号之间的分隔符。但是,如果我在它们之间添加一个空格,行为就会按照文档记录的那样进行。
考虑到没有理智的人会在文件名中使用冒号,如果你想在某个编译器输出中使用gF,例如"file.c:120",你可以在vimrc中添加以下内容:
set isfname-=:

(注意在=之前的-

如果有一天你需要打开一个文件名中带有:的文件,你可以输入:set isfname+=:来恢复这个冒号作为有效文件名字符的状态,为此次会话持续有效。


如果你需要使用 : 编辑一个文件,只需在可视模式下选择它,然后使用 gf 命令即可。 - CervEd

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