[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Как менять кодировки а vim



On 2003.03.20 at 19:17:12 +0200, Andrey aka Longot wrote:

> 
> VBW> 1. Объяснить vim-у что кодировка у файла не такая, как он подумал, а
> VBW>   вот такая:
> VBW>   :e ++enc=имя-кодировки 
> VBW>   (эта операция перечитывает текущий файл с диска, поэтому ее стоит
> VBW>   производить либо до первого изменения, либо сраду после сохранения)
> 
> Пытался так сделать
> пишу следующее  :e ++enc=KOI-8

В смысле - файл в KOI-8, а текущая локаль 1251?

> на что мне отвечают  [NOT converted][unix] 87L, 2755C
> Может я нето имя кодировки пишу :)

В принципе, можно указывать любое имя кодировки, которое понимает
системный iconv. Список можно посмотреть с помощью iconv --list.

Имена там case insensitive.

Но у iconv-а и у большинства основанных на нем перекодировщиков
есть одна большая засада - встретив хотя бы один-единственный символ, 
который в выходной кодировке непредставим, он ломается и отказывается
конвертировать что бы то ни было. У vim именно это приводит к появлению
сообщения not converted.

Наиболее надежный способ борьбы с этим - запускать vim в юникодной
локали (или хотя бы с юникодным внутренним представлением)
В unicode представимы все символы прочих кодировок.

При этом, правда, возможно налететь на not converted при сохранении,
но крайне маловероятно. Поскольку большинство таких нехороших
символов клавиш на клавиатуре не имеет. И потом ты будешь точно знать,
что ты такого в текст навводил.

Или можно просто запустить (g)vim в той локали кодировка которой
соответствует кодировке файла. Надо, правда, озаботиться тем, чтобы
при этом шрифт был соответствующий. Это делается раскладыванием
по каталогам /etc/X11/<имя локали>/app-defaults/ файликов Vim
содержащих что-то вроде
:r /etc/X11/ru_RU.KOI8-R/app-defaults/Vim
Vim.font: -rfx-fixed-medium-r-normal--20-*-*-*-*-*-koi8-r

Соответственно, для ru_RU.CP1251 имя шрифта должно кончаться на
microsoft-cp1251
а для UTF-8 - на iso10646-1

При конвертировании из 1251 в koi8-r наиболее часто встречающиеся
"нехорошие" символы это типо



Reply to: