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 наиболее часто встречающиеся "нехорошие" символы это типо