1

我想按照以下方式运行一些东西

vim -r -c "w %.new | q!" ${filename}

但是,那 !被解析为外部命令的前缀。使用单引号时也会出现类似的问题。

我可以使用下面的代码来解决这个问题,但它感觉不如前面的代码干净或明显。

cp ${filename} ${filename}.new && mv .${filename}.swp .${filename}.new.swp;
vim -r -c "wq" ${filename}.new;
4

1 回答 1

1

使用单引号而不是双引号。是在 bash而!不是 vim 中解释的。

vim -r -c 'w %.new | q!' ${filename}

!然后 test 运行以该文本开头的最后一个命令。"在这种情况下,bash 会查找以未找到开头的命令。单引号阻止 bash 解释!

!在 bash中使用的一些示例

看来实际问题是%.new存在的。只是强制过度写入使用w!而不是w

vim -r -c 'w! %.new | q!' ${filename}
于 2013-08-18T00:54:56.870 回答