使用vim -c标志时,如何在不保存的情况下退出

时间:2013-08-18 00:50:54

标签: vim

我想按照

的方式运行
vim -r -c "w %.new | q!" ${filename}

然而,!被解析为外部命令的前缀。使用单引号时会发生类似的问题。

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

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

1 个答案:

答案 0 :(得分:1)

使用单引号而不是双引号。 {b}中正在解释!,而不是vim。

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

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

在bash中使用!

Some examples

实际问题似乎是%.new存在。要强制优先使用w!代替w

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