LINUX.ORG.RU

VIM & windows unicode


0

0

Помогите подружить VIM и виндусовый юникод.

Столкнулся с такой проблеммой,
не могу нормально открыть файл
в кодировке UNICODE, в место букв примерно такой набор символов:
яюU^@S^@E

Открытие фала в других кодировках ничего не меняет (:e ++enc=ucs2 )
перебирал кодировки ucs2, ucs-2le, ucs-2be, utf-8, utf-16
ничего не помогло.

Файл создовался Microsoft Visual Studio
Версия VIM 7.1 (сборка для windows)
В настройках установлены такие опции
set fileformat=dos
set fileencoding=cp1251
set fileencodings=cp1251,cp866,utf-8,koi8-r
set encoding=cp1251
set termencoding=utf-8

Как научить вим читать файлы виндусового unicode?

Странно, пока всегда помогало :e ++enc=utf8

UVV ★★★★★
()

можно поставить ucs-2le (ИМХО, именно то, что нужно) первым в fileencodings, а лучше - единственным, хотя бы при открытии

Дальше - оффтоп

1) вим иногда умничает и e ++enc для него не указ (не могу точно сказать, в каких случаях), в этом случае помогает

enc=<нужная кодировка>
e ++enc=<нужная кодировка> <файл>

, но это не ваш случай, т.к. двубайтовую кодировку enc можно выбирать только при двубайтовой же (либо четырёхбайтовой) кодировке терминала

2) возможно, стоит сменить encodings на utf-8, т.к. многобайтовый ucs-2le текст не всегда может быть перекодирован в cp1251

router ★★★★★
()
Ответ на: комментарий от router

s/enc=<нужная кодировка>/set enc=<нужная кодировка>/

router ★★★★★
()

Спасибо за помощь, ваши советы помогли.
Внес следующие изменения в _VIMRC и все заработало.

Заменил
set encoding=cp1251
на
set encoding=utf-8
Убрал строки:
set fileencoding=cp1251
set fileencodings=cp1251,cp866,utf-8,koi8-r

В итоге, мой vimrc (то что касается кодировок)
set nocompatible
scriptencoding cp1251

set fileformat=dos "задаёт значение символа конца строки <CR> <NL>

"Настройки русской локали для VIM
set langmenu=ru_ru
set helplang=ru,en

if has('gui_running')
set encoding=utf-8
set termencoding=utf-8
"lang mes ru_RU.cp1251 "Файл сообщений
colorscheme desert "Цветовая схема
set guifont=Courier_New:h14:w8:cRUSSIAN
else
set encoding=utf-8
set termencoding=8bit-cp866
"lang mes ru_RU.cp1251
colorscheme default "Цветовая схема
endif

bear-cub-n
() автор топика

забыл, добавить, что файл
vim71\lang\ru\LC_MESSAGES\vim.mo
тоже перекодировал в utf-8

если этого не сделать, то будут отображается
нечитаемые сообщения.

bear-cub-n
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.