将文件名和当前行传递给 shell 脚本

jpm*_*muc 9 vim shell

我想将光标所在的文件名和当前行号(以冒号分隔)传递给外部 shell 脚本。例如,如果我正在编辑文件“foo.c”并且我当前在第 77 行,我想从 vim 中使用参数“foo.c:77”调用我的脚本。

Hep*_*ite 7

卡拉洛斯答案的替代方案:

:call system('echo ' . expand('%') . ':' . line('.'))
Run Code Online (Sandbox Code Playgroud)

当然,您可以将“echo”替换为您的 shell 脚本的名称。

system() 的优点是它返回命令运行的输出,因此如果需要,您可以捕获它以在 Vim 脚本中进一步使用。

:help expand()如果您需要以任何方式限定/修改文件名,您可能需要查看修饰符。