我想按照以下方式运行一些东西
vim -r -c "w %.new | q!" ${filename}
但是,那 !被解析为外部命令的前缀。使用单引号时也会出现类似的问题。
我可以使用下面的代码来解决这个问题,但它感觉不如前面的代码干净或明显。
cp ${filename} ${filename}.new && mv .${filename}.swp .${filename}.new.swp;
vim -r -c "wq" ${filename}.new;
我想按照以下方式运行一些东西
vim -r -c "w %.new | q!" ${filename}
但是,那 !被解析为外部命令的前缀。使用单引号时也会出现类似的问题。
我可以使用下面的代码来解决这个问题,但它感觉不如前面的代码干净或明显。
cp ${filename} ${filename}.new && mv .${filename}.swp .${filename}.new.swp;
vim -r -c "wq" ${filename}.new;
使用单引号而不是双引号。是在 bash而!
不是 vim 中解释的。
vim -r -c 'w %.new | q!' ${filename}
!
然后 test 运行以该文本开头的最后一个命令。"
在这种情况下,bash 会查找以未找到开头的命令。单引号阻止 bash 解释!
!
在 bash中使用的一些示例
看来实际问题是%.new
存在的。只是强制过度写入使用w!
而不是w
vim -r -c 'w! %.new | q!' ${filename}