Как однажды заметил Джон Грубер, блоги — удобное место для того, чтобы оставлять в них всякие полезные советы, потому что потом людям проще их находить 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

  1. StraNNicK

    Кстати, попробуйте редактор Tea.
    Мне он весьма глянулся...

    P.S. Огромное спасибо за шрифты...

  2. DenD

    А я в работе использую Quanta Plus. Продукт позиционирует себя как "среда для разработки Web"
    Хоть редактор и тяжеловат, но это того стоит.

  3. Dima

    А я не так давно нашел этот самый SciTE (до сих пор использовал в хронологической последовательности - UltraEdit, EditPlus, Notepad2, Notepad++) - и пока доволен.

  4. Dima

    А в качестве шрифта пробовал Anonymous, но у него русского нет. В DejaVu русский есть, но очень кривой на небольших разрешениях - поэтому остаюсь на Lucida Console.

  5. Старынин Валерий

    А как в SciTE открыть текст, скажем, в KOI-8?

  6. Ringill

    Спасибо, понравился редактор.
    С anti-aliased русским в DejaVu и впрямь беда, Bitstream Vera лучше (в Debian по крайней мере).

  7. Иван Сагалаев

    Он не очень подходит для работы с несколькими кодировками, потому что там есть только два понятия: юникод и не юникод (8 bit). Наверное можно в качестве 8-битной кодировки прописать KOI8, но я в этом не ковырялся... Когда мне попадается файлик в win-1251 или KOI8, я сначала один раз перевожу его в utf-8 (iconv -f koi8-r -t utf-8 filename -o filename.new) и оставляю уже только новый файл и с ним работаю.

  8. Старынин Валерий

    А если надо поправить 100 файликов в KOI-8?

  9. Иван Сагалаев

    До сих пор не приходилось :-). Но если бы понадобилось, я бы написал какой-нибудь простой shell-скрипт который бы вызывал iconv и стирал-переименовывал, что нужно.

  10. 8AleX8
  11. Dik

    Пользовался Tea, но что то последнее время он стал плохо определять входящую кодировку :( В связи с тем, что использую в основном utf-8 этот материал пришёлся как раз кстати, решил потестить scite. Что то подтормаживает он при запуске...
    Надо всё ж таки основательно осваивать vim :)

  12. Тугаринов Сергей

    Иван, я опубликовал копию вашей заметки на сайте http://scite.ruteam.ru в качестве FAQ по использованию редактора SciTE.

    Мне эта заметка очень пригодиться, так как в ближайщие пол года мне нужно будет переходить на Linux. Спасибо вам большое.

  13. Pete[r]

    А если мне надо открывать одни расширения в utf-8, а другие — в koi8-r?
    Фактически, мне нужно узнать, как настроить
    code.page=...
    для каждого расширения отдельно.

  14. Oleksandr Gavenko

    Try Emacs, it flexible without any magic.
    In old past I try use SciTE (about 2004), but it be ugly.

  15. Plavozont

    Я запускаю Windows версию scite из-под wine и всё как надо работает по русски. Трабл вышел когда нужно было создать ассоциацию к файлу в FileZilla, выдавалась ошибка на пуерториканском. Когда переместил FileZilla в одну из стандартных папок (Конфигурация Wine->Вид и интеграция->Стандартные папки) стала запускаться, но не открывала ассоциированный файл. Когда изменил путь к scite с "/home/user_name/Рабочий стол/SciTE/PortableSciTE.exe" на /usr/bin/wine "/home/user_name/Рабочий стол/SciTE/PortableSciTE.exe" всё заработало.

  16. Русский язык в SciTE на Linux

  17. Egor

    2 Pete[r]: Настроить code.page=... для каждого расширения отдельно можно через параметр extension.filepattern (который указывает на Lua-файл, в котором это переключение выполняется двумя строчками кода). А ещё можно переключать кодировку по нажатию кнопки (для этого нужно прописать command.NN.*=dofile Lua-файл и ещё несколько связанных с ним строк для формирования пункта меню) Но 9 лет назад этих возможностей, вероятно, не было. )))

Добавить комментарий