Глюк кодировки. (неужели вим не всемогущ?)
Модератор: /dev/random
Глюк кодировки.
Есть некоторый файл на русском языке. В огненной лисичке он совершенно корректнейшим образом открывается в кодировке CP-866.
А в виме я ставлю set encoding=cp866. И получаю вместо русских букв крякозябры. Что я делаю не так?
А в виме я ставлю set encoding=cp866. И получаю вместо русских букв крякозябры. Что я делаю не так?
- /dev/random
- Администратор
- Сообщения: 5289
- ОС: Gentoo
Re: Глюк кодировки.
О работает.
Чёрд. Что такое e?
И почему set encoding не работает?
Чёрд. Что такое e?
И почему set encoding не работает?
- /dev/random
- Администратор
- Сообщения: 5289
- ОС: Gentoo
Re: Глюк кодировки.
Мну не понимать.
Я сам лично сабы нормально отображал через set encoding а потом сохранял в нужной кодировке через set fileencoding.
Почему у меня таким макаром срабатывало?
Я сам лично сабы нормально отображал через set encoding а потом сохранял в нужной кодировке через set fileencoding.
Почему у меня таким макаром срабатывало?
Re: Глюк кодировки.
encoding — это внутреннее представление. его лучше не трогать. разве что на период действия одной команды (то самое ++enc)
termencoding — это для терминала
fileencoding — это в какой кодировке будет сохранён текущий буфер
fileencodings — это список кодировок, которые vim будет последовательно перебирать при открытии файла
примерно так. читайте :h <команда>
termencoding — это для терминала
fileencoding — это в какой кодировке будет сохранён текущий буфер
fileencodings — это список кодировок, которые vim будет последовательно перебирать при открытии файла
примерно так. читайте :h <команда>
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
Re: Глюк кодировки.
вот примерно стандартное содержимое fileencodings:
если добавить cp1251, допустим, в конец:и после этого открыть файл в кодировке cp1251, он отобразится некорректно. взглянув на текущее содержимое fileencoding видим, что была использована кодировка latin1. она первая из списка не дала ошибки при перекодировании.
а вот если поставить cp1251 в начало:то при открытии того же файла он будет корректно перекодирован.
и переменной fileencoding будет присвоено корректное значение: cp1251.
следовательно, и записан файл будет корректно. именно в cp1251.
но чтобы вот так не извращаться, проще сразу открывать файл, подставив временно (на время действия команды :e) внутреннюю кодировку cp1251:
или, если файл уже в буфере, то можно имя файла не указывать:он просто будет заново считан с диска в текущий буфер.
Код: Выделить всё
:set fileencodings
fileencodings=ucs-bom,utf-8,default,latin1
если добавить cp1251, допустим, в конец:
Код: Выделить всё
:set fileencodings=ucs-bom,utf-8,default,latin1,cp1251
а вот если поставить cp1251 в начало:
Код: Выделить всё
:set fileencodings=cp1251,ucs-bom,utf-8,default,latin1
и переменной fileencoding будет присвоено корректное значение: cp1251.
следовательно, и записан файл будет корректно. именно в cp1251.
но чтобы вот так не извращаться, проще сразу открывать файл, подставив временно (на время действия команды :e) внутреннюю кодировку cp1251:
Код: Выделить всё
:e ++enc=cp1251 <файл>
Код: Выделить всё
:e ++enc=cp1251
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
Спасибо сказали:
- /dev/random
- Администратор
- Сообщения: 5289
- ОС: Gentoo
Re: Глюк кодировки.
sash-kan писал(а): ↑12.05.2010 00:03а вот если поставить cp1251 в начало:то при открытии того же файла он будет корректно перекодирован.Код: Выделить всё
:set fileencodings=cp1251,ucs-bom,utf-8,default,latin1
Лучше не в начало, а после utf-8.
Re: Глюк кодировки.
Да, еще один tip от sash-kan:
:e ++ и стрелки = получаем ранее использовавшиеся кодировки. Довольно удобно.
:e ++ и стрелки = получаем ранее использовавшиеся кодировки. Довольно удобно.
Re: Глюк кодировки.
sash-kan
Круто. Вопросов больше нет. "Надо это в тонкости настройки" добавить.
Круто. Вопросов больше нет. "Надо это в тонкости настройки" добавить.
- drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
- Контактная информация:
Re: Глюк кодировки.
открыл файл в UTF - всё нормально, открыл таб и в нём файл в KOI8-R - нормально, но в первом табе стали кракозябры. Есть-ли простое решение? Что-бы в каждом табе своя кодировка?
PS: :e ++enc=koi8-r file_name
PS: :e ++enc=koi8-r file_name
Re: Глюк кодировки.
так и есть. у вас что-то неправильное происходит.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
Re: Глюк кодировки.
лучше уж менюшкой воспользоваться:
Код: Выделить всё
" менюшка для выбора кодировок
menu VVspell.enable_ru :setlocal spell spelllang=ru<CR>
menu VVspell.enable_en :setlocal spell spelllang=en<CR>
menu VVspell.enable_enru :setlocal spell spelllang=en,ru<CR>
menu Encoding.koi8-r :e ++enc=koi8-r<CR>
menu Encoding.windows-1251 :e ++enc=cp1251<CR>
menu Encoding.ibm-866 :e ++enc=ibm866<CR>
menu Encoding.utf-8 :e ++enc=utf-8<CR>
menu Encoding.SpellMenu :emenu VVspell.<TAB>
map <F8> :emenu Encoding.<TAB>