0

要更改多个文件,我使用以下脚本:

echo search('publications.html"') | normal o<li><a href="./book_series.html">Книжные серии</a></li>
echo search('collections.html"') | d
echo search('photo.html"') | d
wq

然后我做for file in *.html do; vim -e $file < script; done

结果,插入了字符串“^Z=86=K5 A5@88”而不是“Книжные серии”。所有 html 文件以及脚本本身都是 utf-8 编码的,并且没有发现 Cyrillic 的其他问题。这是怎么回事?

提前感谢您的任何评论!

4

2 回答 2

0

你可能需要告诉 Vim 将你的脚本解释为 utf-8,即使所有的编码都是正确的。

尝试在脚本顶部插入这一行:

 scriptencoding utf-8
于 2014-06-03T18:31:57.840 回答
0

根据 vim_use 邮件列表对同一问题的回复,多字节字符不在 Vim 的 ex 模式中处理

因此,解决方案是根本不使用 ex 模式。

而不是使用:

vim -e $file < script

使用 -S 标志在 ex 模式之外运行脚本:

vim -S script $file
于 2014-06-05T16:56:47.720 回答