vim和无法识别的字符

时间:2009-10-05 10:05:48

标签: vim character-encoding

我有一个带有一些重音的文件,VIM将它们显示为“~V”字符。 “od -bc”命令告诉我字符是charcode 226.我想用VIM替换它们。但我不能让它与人物相匹配。我怎样才能做到这一点?

可选问题:如何让VIM告诉我哪个字符集用于解释当前文件?

2 个答案:

答案 0 :(得分:2)

您可以使用以下格式,从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)

所以你应该可以做这样的事情,用文件中的全局空格替换char 226:

:%s/\%d226/ /g

至于后者,如果你这样做:

:set encoding

你会看到如下输出:

encoding=latin1

答案 1 :(得分:1)

处理这种“怪异”角色的一个非常简单的方法是:

  1. 直观地选择违规字符(v)
  2. 把它拉到缓冲区
  3. 将其替换为::%s/<ctrl-r>"/something-else/g
  4. 其中<ctrl-r>按下ctrl和字母r - 以及“它会将缓冲区复制到命令行 - 有效地将您的违规字符放在s///操作中。