Я уже неоднократно
упоминал, что мой любимый текстовый
редактор — SciTE.
В нем есть всё, что мне нужно, а если чего
нет, то это не слишком сложно добавить.
Сегодня
расскажу, как правильно
установить стартовую кодировку файла
— UTF-8 by default, ибо современные реалии
таковы, что подавляющее большинство
файлов вокруг — в кодировке UTF-8. Но
сначала небольшое пояснение.
Есть у SciTE
багофича — редактор предполагает, что
по умолчанию все открываемые файлы
содержат текст в кодировке «Code Page
Property», конкретная кодовая страница
задается в настройках редактора (конечно,
редактор содержит механизмы автоопределения
кодировок, но они не все файлы могут
корректно автоопределить). При желании,
можно через меню редактора кодировку
поменять на UTF-8, к примеру. Почему авторы
не захотели сделать наоборот — по
умолчанию выбирать UTF-8 а по желанию
настраиваемую Code Page, лично мне не ясно.
Наверняка были уважительные причины.
В интернетах много рекомендаций, как включить в SciTE кодировку UTF-8 по умолчанию:
но все эти
рекомендации скорее вредны, чем
полезны. Ибо предполагают установку
Code Page Property в unicode, что, конечно, дает
желаемый эффект — все файлы по умолчанию
считаются в кодировке UTF-8. Но при этом
пропадает возможность использовать
какую-либо другую кодировку, например
CP-1251, столь популярную до сих пор у нас.
Вот, только
теперь, после такого многословного
вступления в тему, я дарю вам хороший,
годный рецепт установки умолчальной
кодировки в UTF-8 в SciTE.
Рецепт основан
на использовании событий в редакторе,
скриптах Lua, содержащих обработчики
некоторых событий и возможности
имитировать в скриптах вызовы пунктов
меню редактора.
Для избежания
повторений ознакомьтесь с предыдущей
статьей
и скачайте
используемые мною скрипты
Теперь:
Подключите к
SciTE суперскрипт scite-extman
#/home/valik/.SciTEUser.properties ext.lua.directory=$(SciteUserHome)/lua/scite_lua ext.lua.startup.script=$(SciteUserHome)/lua/extman.lua |
Это раз.
Добавьте в
папку со скриптами обработчик события
открытия файла
#/home/valik/lua/scite_lua/valik_cmd.lua function ToggleEncoding() if buffer and not buffer["MadeUTF8"] then scite.MenuCommand(IDM_ENCODING_UCOOKIE) buffer["MadeUTF8"] = true end return false end scite_OnOpen(ToggleEncoding) |
Это два. Кстати,
полный список команд меню можно глянуть
тут
Перезапустите
редактор. Это три.
Теперь, не
потеряв возможности использовать
кодировку CP1251, у нас редактор открывает
файлы в кодировке UTF-8 по умолчанию.
original post http://vasnake.blogspot.com/2013/04/scite-and-utf-8.html
original post http://vasnake.blogspot.com/2013/04/scite-and-utf-8.html
Ссылка на скрипты - битая. Это не удивительно, зачем пользовать dropbox
ОтветитьУдалитьСпасибо за обнаружение баги. Исправил ссылку.
УдалитьК сожалению, SciTE не запускается на Маке, а на работе у меня сейчас Мак. Ближайшее к Скайту, что нашлось -- это Geany.