我想将光标所在的文件名和当前行号(以冒号分隔)传递给外部 shell 脚本。例如,如果我正在编辑文件“foo.c”并且我当前在第 77 行,我想从 vim 中使用参数“foo.c:77”调用我的脚本。
卡拉洛斯答案的替代方案:
:call system('echo ' . expand('%') . ':' . line('.'))
Run Code Online (Sandbox Code Playgroud)
当然,您可以将“echo”替换为您的 shell 脚本的名称。
system() 的优点是它返回命令运行的输出,因此如果需要,您可以捕获它以在 Vim 脚本中进一步使用。
:help expand()
如果您需要以任何方式限定/修改文件名,您可能需要查看修饰符。