The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"vim: автоматическое назначение кодировки по маске открываемо..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"vim: автоматическое назначение кодировки по маске открываемо..."  
Сообщение от Ilya Storozhilov email on 19-Мрт-07, 13:41 
Здравствуйте!
Прошу прощения за потенциально ламерский вопрос, но покопавшись в доках так и не смог найти на него решения. Необходимо следующее: при редактировании файлов с расширением *.xyz устанавливать кодировку в которой файл будет сохраняться на диск в utf-8, а для расширения *.zyx - koi8-r. Для этого

1. прописал в ~/.vimrc следующее:

set termencoding=koi8-r
set encoding=utf-8

2. прописал в ~/.vim/after/syntax/xyz.vim:

set fileencoding=utf-8

3. прописал в ~/.vim/after/syntax/zyx.vim:

set fileencoding=koi8-r

В результате файлы *.xyz отображаются и записываются нормально, а вот файлы *.zyx не совсем: при создании нового файла все работает на "ура", а при открытии существующего соответствующей перекодировки (koi8-r -> utf-8) не происходит и вместо русских букв отображаются знаки вопроса (хотя fileencoding устанавливается-таки в koi8-r). Команда

:e ++enc=koi8-r %

конечно решает проблему, благо на нее можно как маппинг, так пункт меню установить (в инете скриптов-то имеется), однако не хотелось бы грузить этим пользователей и все делать автоматом, благо для этого автоматизация и нужна. Я попробовал делать что-нибудь типа

:autocmd BufRead *.zyx set fileencoding=koi8-r

или

:autocmd BufReadPre *.zyx set fileencoding=koi8-r

не помогло. Может у кого имеются мысли по этому поводу?

Спасибо огромное!
С уважением,
Илья Сторожилов

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "vim: автоматическое назначение кодировки по маске открываемо..."  
Сообщение от Ilya Storozhilov email on 19-Мрт-07, 18:00 
Здравствуйте еще раз!

Отвечаю сам себе, т.к. нашел решение проблемы - вдруг кому понадобится. Это можно сделать с помощью автокоманд, однако менять надо не fileencoding (что напрашивается по логике вещей), а параметр encoding (что достаточно странно). Вот фрагмент ~/.vimrc:

autocmd BufNewFile *.xyz set encoding=utf-8
autocmd BufNewFile *.zyx set encoding=koi8-r

autocmd BufReadPre *.xyz set encoding=utf-8
autocmd BufReadPre *.zyx set encoding=koi8-r

autocmd WinEnter *.xyz set encoding=utf-8
autocmd WinEnter *.zyx set encoding=koi8-r

В результате при редактировании одновременно 2-х файлов с разными расширениями возникает интересный глюк: один файл отображается нормально, а другой "криво". При переключении между окнами ситуация меняется с точностью до наоборот. Несколько неудобно, конечно, но хотя бы что-то...

Всех благ!
С уважением,
Илья Сторожилов

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру