gpt4 book ai didi

vim - 在 Vim 中的新命令定义中调用 Replace() 和 Expand()

转载 作者:行者123 更新时间:2023-12-02 17:51:39 25 4
gpt4 key购买 nike

我正在尝试在 Vim 中定义一个新命令,该命令使用当前文件的名称调用外部脚本,但稍作修改。以下是我定义命令的方式:

:command MyNewCommand !/tmp/myscript.sh substitute(expand("%:p"), "-debug", "", 'g')

换句话说,myscript.sh 采用一个参数,即正在编辑的文件的完整路径名,并删除了路径名中的字符串 -debug。我的命令定义不起作用,因为 Vim 似乎不是传递路径名,而是传递给 myscript.sh 整个字符串本身,以单词 substitute 开头。如何定义命令来执行我想要的操作?谢谢:)。

最佳答案

您可以使用system()函数来执行脚本。更改命令定义如下:

:command! MyNewCommand call system('/tmp/myscript.sh ' .
\ shellescape(substitute(expand('%:p'), '-debug', '', 'g')))

要查看命令的输出,请将 call 替换为 echo

关于vim - 在 Vim 中的新命令定义中调用 Replace() 和 Expand(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7395585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com