Как однажды заметил Джон Грубер, блоги — удобное место для того, чтобы оставлять в них всякие полезные советы, потому что потом людям проще их находить Google'ом, который традиционно дает блогам высокий приоритет в результатах поиска.
Эта заметка как раз из этой серии, о том, как настроить редактор SciTE для удобной работы с русским языком в Линуксе.
Ссылка на SciTE с самого начала висит на главной странице моего блога, и там написано, что это удобнейший текстовый редактор для программиста. Писал я это по опыту пользования им в Windows. А вот в линуксовой версии SciTE обнаружились пренеприятные минусы:
- шрифты не сглаживаются и выглядят кошмарно
- текст по-русски читается, но его невозможно набрать с клавиатуры
Однако, это все исправляется.
Шрифты
Сначала считаю своим долгом любому программисту порекомендовать очень правильные шрифты: DejaVu (в частности моноширинной шрифт). Правильные они во-первых тем, что хорошо выглядят на довольно маленьких размерах (я пользуюсь восьмеркой), а во-вторых, там учтены важные для кода вещи: четкое различное начертание единицы, маленькой латинской "l" и большой латинской "I", различное начертание цифры "0" и буквы "O" и т.д.
Кстати, DejaVu основаны на шрифтах Bitstream Vera, которые и так есть в большинстве Линуксов по умолчанию, но беда в том, что в моей Ubuntu русская часть этих шрифтов - это вообще что-то другое. Просто совершенно другое начертание, кошмарно выглядит и невозможно читать.
Чтобы прописать их в SciTE, открываете файл настроек (Options, Open User Options File) и пишете туда:
font.monospace=font:!DejaVu Sans Mono,size:8
Не забудьте восклицательный знак перед названием шрифта: он как раз и включает сглаживание шрифтов в SciTE.
Я еще также прописываю этот же шрифт для всех остальных режимов (не представляю, как можно программировать пропорциональными шрифтами):
font.base=$(font.monospace)
font.small=$(font.monospace)
font.comment=$(font.monospace)
font.text=$(font.monospace)
font.text.comment=$(font.monospace)
font.embedded.base=$(font.monospace)
font.embedded.comment=$(font.monospace)
font.vbs=$(font.monospace)
Русский язык
Единственный совет, который я нашел по поводу русского языка в SciTE мне не подошел. Из-за этой настройки у SciTE (у меня, по крайней мере) сбивается шрифт на мелкий курсив с засечками, игнорируя нормальные установки. И это ужасно... Но хуже то, что единственной доступной кодировкой в этом случае становится windows-1251. Я же все веду только в utf-8, чтобы не испытывать проблем с интернациональными алфавитами самому и не создавать этих проблем пользователям своих программ.
Чтобы включить SciTE на Линуксе в юникодный режим, надо прописать в файлике такие две магические строчки:
code.page=65001
LC_CTYPE=en_US.UTF-8
После этого все пишется и читается по-русски и по умолчанию работает в utf-8.
Комментарии: 17
Кстати, попробуйте редактор Tea.
Мне он весьма глянулся...
P.S. Огромное спасибо за шрифты...
А я в работе использую Quanta Plus. Продукт позиционирует себя как "среда для разработки Web"
Хоть редактор и тяжеловат, но это того стоит.
А я не так давно нашел этот самый SciTE (до сих пор использовал в хронологической последовательности - UltraEdit, EditPlus, Notepad2, Notepad++) - и пока доволен.
А в качестве шрифта пробовал Anonymous, но у него русского нет. В DejaVu русский есть, но очень кривой на небольших разрешениях - поэтому остаюсь на Lucida Console.
А как в SciTE открыть текст, скажем, в KOI-8?
Спасибо, понравился редактор.
С anti-aliased русским в DejaVu и впрямь беда, Bitstream Vera лучше (в Debian по крайней мере).
Он не очень подходит для работы с несколькими кодировками, потому что там есть только два понятия: юникод и не юникод (8 bit). Наверное можно в качестве 8-битной кодировки прописать KOI8, но я в этом не ковырялся... Когда мне попадается файлик в win-1251 или KOI8, я сначала один раз перевожу его в utf-8 (iconv -f koi8-r -t utf-8 filename -o filename.new) и оставляю уже только новый файл и с ним работаю.
А если надо поправить 100 файликов в KOI-8?
До сих пор не приходилось :-). Но если бы понадобилось, я бы написал какой-нибудь простой shell-скрипт который бы вызывал iconv и стирал-переименовывал, что нужно.
Тут с 2002 года обсуждают SciTE
Пользовался Tea, но что то последнее время он стал плохо определять входящую кодировку :( В связи с тем, что использую в основном utf-8 этот материал пришёлся как раз кстати, решил потестить scite. Что то подтормаживает он при запуске...
Надо всё ж таки основательно осваивать vim :)
Иван, я опубликовал копию вашей заметки на сайте http://scite.ruteam.ru в качестве FAQ по использованию редактора SciTE.
Мне эта заметка очень пригодиться, так как в ближайщие пол года мне нужно будет переходить на Linux. Спасибо вам большое.
А если мне надо открывать одни расширения в utf-8, а другие — в koi8-r?
Фактически, мне нужно узнать, как настроить
code.page=...
для каждого расширения отдельно.
Try Emacs, it flexible without any magic.
In old past I try use SciTE (about 2004), but it be ugly.
Я запускаю Windows версию scite из-под wine и всё как надо работает по русски. Трабл вышел когда нужно было создать ассоциацию к файлу в FileZilla, выдавалась ошибка на пуерториканском. Когда переместил FileZilla в одну из стандартных папок (Конфигурация Wine->Вид и интеграция->Стандартные папки) стала запускаться, но не открывала ассоциированный файл. Когда изменил путь к scite с "/home/user_name/Рабочий стол/SciTE/PortableSciTE.exe" на /usr/bin/wine "/home/user_name/Рабочий стол/SciTE/PortableSciTE.exe" всё заработало.
2 Pete[r]: Настроить code.page=... для каждого расширения отдельно можно через параметр extension.filepattern (который указывает на Lua-файл, в котором это переключение выполняется двумя строчками кода). А ещё можно переключать кодировку по нажатию кнопки (для этого нужно прописать command.NN.*=dofile Lua-файл и ещё несколько связанных с ним строк для формирования пункта меню) Но 9 лет назад этих возможностей, вероятно, не было. )))