我想使用此文件中的当前文件名进行搜索。我已经知道使用 :call Expand("%:p:h")
获取当前文件名。所以我想使用像 /call Expand("%:p:h")
这样的命令来搜索。我尝试了这个但失败了,因为 vim 从字面上解析这个函数调用。
最佳答案
通常,要在命令行(或仅在插入模式下)插入某个函数返回的值,您应该使用以下命令:
Ctrl+R=function_name()Enter
顺便说一句,你说 expand("%:p:h")
返回当前文件名,但这是错误的:实际上它返回当前文件的完整路径,没有文件名。要仅获取不带路径的文件名,您应该使用 expand("%:t")
。请阅读:help Expand
以获取更多信息。
已编辑:在您的情况下,您可以使用 @ib 建议的搜索寄存器 @/
解决方案:这是一种更安全的方法。但是,如果我只需要在缓冲区中查找文件名,并且我的文件名不包含某些特殊字符,我将使用 Ctrl+R= 代替。
因此,搜索当前文件名的整个表达式是:
/\V
Ctrl+R=expand('%:t')
Enter 输入
附注
搜索模式开头的\V
表示“very nomagic”模式。您可以在这里阅读::help\V
关于vim - 如何使用函数返回的值进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8676070/