如何编写批处理文件来运行vim命令

时间:2016-08-31 05:53:34

标签: windows batch-file vim

我正在尝试编写一个批处理文件,它将使用vim替换文本文件中的几行。以下是批处理文件的内容:

vim toedit.txt  
:10  
:R new value  
:11  
:R new value  
:wq

执行后,它将从vim的角度给出一条消息:

Swap file "toedit.txt.swp" already exists!  
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

什么是交换文件?无论如何,我按D,因为它听起来只是一个临时文件,然后我的批处理运行将停在vim中,光标位于文本文件的第10行。

批处理文件中的换行符(通过按Enter键生成)是否作为用户按Enter运行每个命令?如何编写正确的批处理文件来编辑文本文件?感谢。

1 个答案:

答案 0 :(得分:5)

:help swap-file

通常,如果Vim崩溃,交换文件将在磁盘上,或者在另一个进程中打开已由Vim打开的文件。您可以使用-n开关忽略交换文件。

对于批量编辑,最好使用ex,这是Vim的批量版本。但是,vanilla Vim中没有:R命令,所以我无法确定你要做什么;但它会像

ex -n toedit.txt +10 +"R new value" +11 +"R new value" +wq