我想按照
的方式运行vim -r -c "w %.new | q!" ${filename}
然而,!被解析为外部命令的前缀。使用单引号时会发生类似的问题。
我可以使用以下代码解决这个问题,但它感觉比以前的代码更不干净或明显。
cp ${filename} ${filename}.new && mv .${filename}.swp .${filename}.new.swp;
vim -r -c "wq" ${filename}.new;
答案 0 :(得分:1)
使用单引号而不是双引号。 {b}中正在解释!
,而不是vim。
vim -r -c 'w %.new | q!' ${filename}
!
然后测试运行以该文本开头的最后一个命令。在这种情况下,bash会查找以"
开头的命令,该命令未找到。单引号会阻止bash解释!
!
的
实际问题似乎是%.new
存在。要强制优先使用w!
代替w
vim -r -c 'w! %.new | q!' ${filename}