vim和无法识别的字符
问题描述:
我有一些带有一些重音符号的文件,VIM将它们显示为“〜V”字符。 “od -bc”命令告诉我字符是charcode 226.我想用VIM替换它们。但我无法让它符合人物。我怎样才能做到这一点?vim和无法识别的字符
可选问题:我如何让VIM告诉我哪个字符集用于解释当前文件?
答
您可以使用以下格式,从Vim的于模式和正则表达式手册:
ordinary atom
magic nomagic matches
\%d \%d match specified decimal character (eg \%d123
\%x \%x match specified hex character (eg \%x2a)
\%o \%o match specified octal character (eg \%o040)
\%u \%u match specified multibyte character (eg \%u20ac)
\%U \%U match specified large multibyte character (eg \%U12345678)
所以,你应该能够做这样的事情用一个空格全球替换文件中的字符226:
:%s/\%d226/ /g
至于后者,如果你这样做:
:set encoding
你会看到Ø本安输出,如:
encoding=latin1
答
一个非常简单的方法来应对这种 “怪异” 的人物是:
- 选择有问题的字符(一个或多个)视觉(V)
- 猛拉它缓冲
- 将其替换为:
:%s/<ctrl-r>"/something-else/g
其中<ctrl-r>
时按住Ctrl键字母r - 连同“吧将缓冲区复制到命令行 - 有效地将您的违规字符放入s///
操作中。
不幸的是,当我尝试时,VIM输出“E71:\%后面的无效字符”。 – Alsciende 2009-10-05 12:01:27
我得到E486:找不到模式(我期望)。但是,如果我省略'd'(即,我只是做s/\%226 /),我确实得到了E71。你究竟在尝试什么命令? – 2009-10-05 12:17:15
我输入了:%s/\%d226 /é/ g – Alsciende 2009-10-05 13:03:38