我想找到一些文本,并将其替换为包含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)')
部分。
请帮我解决这个问题
答案 0 :(得分:4)
你的" shell命令"不正确!
您至少应该检查命令中的引号('
和"
)是否已配对
您至少应检查命令中的所有方括号(..)
是否已配对。
对于vim :s
命令,您应该使用\=
来获取表达式的结果。请阅读:h :s\=
了解详情。
你的例子:
:40,43s/\v('height':) 650/\=submatch(1)." ".system('python -c "import random; print(random.randint(500, 600))"')/
您的命令已修复在上一行。