将命令结果插入vim命令

时间:2017-10-25 08:24:08

标签: vim

我想找到一些文本,并将其替换为包含shell命令结果的其他文本。这是我的试用版,但无效:

:40,43s/'height': 650/'height': system('python -c "import random; print(random.randint(500, 600))"')/g

Vim不想评估system('python -c "import random; print(random.randint(500, 600)')部分。

请帮我解决这个问题

1 个答案:

答案 0 :(得分:4)

你的" shell命令"不正确!

  • 您至少应该检查命令中的引号('")是否已配对

  • 您至少应检查命令中的所有方括号(..)是否已配对。

对于vim :s命令,您应该使用\=来获取表达式的结果。请阅读:h :s\=了解详情。

你的例子:

:40,43s/\v('height':) 650/\=submatch(1)." ".system('python -c "import random; print(random.randint(500, 600))"')/

您的命令已修复在上一行。