vim и нераспознанные персонажи - PullRequest
1 голос
/ 05 октября 2009

У меня есть файл с некоторыми акцентами, и VIM отображает их как символы "~ V". Команда "od -bc" сообщает мне, что символы - это код 226. Я хочу заменить их, используя VIM. Но я не могу заставить его соответствовать персонажам. Как мне этого добиться?

Необязательный вопрос: как я могу сказать VIM, какая кодировка используется для интерпретации текущего файла?

Ответы [ 2 ]

2 голосов
/ 05 октября 2009

Вы можете использовать следующие форматы из руководства 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 голос
/ 05 октября 2009

Один очень простой способ справиться с такими «странными» персонажами:

  1. визуально выберите оскорбительные символы (v)
  2. восстановить в буфер
  3. заменить его на: :%s/<ctrl-r>"/something-else/g

, где <ctrl-r> нажимает ctrl и букву r - вместе с «это скопирует буфер в командную строку - эффективно помещая ваши оскорбительные символы в операцию s///.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...