要在多个文件中进行更改,请使用以下脚本:
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编码的,西里尔语没有其他问题。 发生了什么事?
提前感谢任何评论!
答案 0 :(得分:0)
你可能需要告诉Vim将你的脚本解释为utf-8,即使所有的编码都是正确的。
尝试在脚本顶部插入此行:
scriptencoding utf-8
答案 1 :(得分:0)
根据vim_use邮件列表对同一问题的回复multibyte characters are not handled in Vim's ex mode。
因此,解决方案是根本不使用ex模式。
而不是使用:
vim -e $file < script
使用-S标志在ex模式之外运行脚本:
vim -S script $file