我正在尝试使用“exe”在VIM中运行shell命令。我有一个包含系统调用结果的变量(路径名)
tempName=system('run.sh') "tempname is actually equal to "/path/to/file/tempfile.do"
我想在另一个shell命令中使用变量tempName:
exe '! cat '.tempName.' >> anotherFile'
那么应该运行的是:
cat /path/to/file/tempFile.do >> anotherFile
但由于某种原因,“>> anotherFile”部分被切断,只有
cat /path/to/file/tempFile.do
正在运行。我试图逃避“>>”字符和“。”这没用。有任何想法吗?
答案 0 :(得分:1)
这对我有用。请注意cat
:exe '! cat '.tempName.' >> anotherFile'
答案 1 :(得分:1)
当你按字面输入时它是否有效?
:execute '!cat /path/to/file/tempFile.do >> anotherFile'
如果是,那么问题是system()
捕获输出,包括换行符。
一种解决方案是使用substitute()
剥离最终换行符:
:execute '!cat '.substitute(tempName, '\n$', '', '').' >> anotherFile'