Emacs для начинающих

       

Конфигурирование .Xdefaults


Не смотря на некоторую сумбурность описания, из него, надеюсь, ясно, в через меню Preferences - Defaults Settings в NEdit можно настроить почти все. Едиственно, следует не забыть сохранить сделанные изменения, дабы сделать их перманентными (через Preferences - Save Defaults).

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

Отчаиваться не следует - на сей предмет существует метод левой резьбы. То есть - ручной правки конфигурационного файла /$HOME/.Xdefaults, поисывающего особенности X-приложений.

Секции для NEdit в нем нет. Однако создать ее (хотя бы собственными средствами этого редактора) труда не составит. Для этого достаточно вставить такие строки: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

! nedit

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! где строки с восклицательными знаками, естественно, не обязательны, служа всего-навсего ограничителями секции, а строка ! nedit - комментарий, дабы не забыть, о чем, собственно, идет речь.

Теперь дело за малым - нужно создать наполнение секции. Это можно сделать по наитию (и методом проб и ошибок), как в первом варианте этой заметки. А можно обратиться к системе помощи - тому самому ее пункту, где говорится о конфирурировании NEdit и, в частности, о ресурсах X Window (Help - Customizing - X Resources.

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

nedit.tagFile: (not defined) Насколько я смог понять, нечто, имеющее отношение к программированию на C. Оригинальный комментарий таков: The name of a file of the type produced by Exuberant Ctags or the Unix ctags command, which NEdit will load at startup time (see Features for Programmers). The tag file provides a database from which NEdit can automatically open files containing the definition of a particular subroutine or data type. nedit.shell: /bin/csh Указание на оболочку командной строки, скрипты которой выполняются через меню Shell. Вероятно, хотя пока и не проверено, можно указать и bash, и что-нибудь еще. nedit.wordDelimiters: .,/\\`'!@#%^&*()-=+{}[]":;<>? Знаки, маркирующие (в дополнение к пробелам и табуляции) границы между словами при их выделении мышью (двойным щелчком на слове) или премещении курсора комбинацией клавиш Ctrl+Стрелки nedit.remapDeleteKey: False Указание значения True переопределяет клавишу Delete как Backspace. Комментарий гласит, что это может быть полезно при работе с клавиатурами систем DEC (вероятно, имеется в виду что-то вроде PDP или VAX) и Macintosh. Для пользователей PC, по-моему, практического значения не имеет. nedit.stdOpenDialog: False Возвращение значения True устанавливает стандартный для приложений, основанных на Motif, стиль диалоговых панелей. За незнакомством с последним, смысл опции не вполне понимаю.


nedit.bgMenuButton: [Shift][Ctrl][Meta][Alt][Btn3Down] Способ доступа к контекстному ( или фоновому) меню. По умолчанию для этой цели служит, как и в Windows, правая (третья - отсюда Button 3) кнопка мыши. Однако можно использовать и любой из четырех других вариантов (правда, клавиша Meta, по-моему - это из области Mac?). nedit.maxPrevOpenFiles: 30 Максимальное количество файлов в списке, вызываемом через меню File - Open Previous (то есть ранее открывавшихся или создававшихся). Насколько мне удалось понять, значение это сверху ограничено только размерами дисплея и его разрешением - при большом количестве список уходит за пределы видимости. Список открывавшихся ранее документов хранится в конфигурационном файле /$HOME/.neditdb. nedit.printCommand: (system specific) Этот параметр и серия следующих за ним определяют условия печати документов из редактора NEdit. По умолчанию все они используют системные установки. Насколько я понимаю, лучше их таковыми и оставить, если нет везких причин для иного решения. И понимания, как его реализовать (у меня такового понимания нет). nedit.printCopiesOption: (system specific) nedit.printQueueOption: (system specific) nedit.printNameOption: (system specific) nedit.printHostOption: (system specific) nedit.printDefaultQueue: (system specific) nedit.printDefaultHost: (system specific) К этим пунктам относится сказанное в предыдущем комментарии. nedit.multiClickTime: (system specific) Время ожидания второго щелчка кнопкой мыши, в течении которого он счиается за двойной. Здесь логично сохранить системную установку - не зря же вы ее делали для всех приложений. nedit*scrollBarPlacement: BOTTOM_LEFT Эта строка описывает положение и вид полосы прокрутки. При значении в примере (как ни старнно, это не значение по умолчанию - уже при первом запуске NEdit полоса прокрутки располагается справа) она должна располагаться вдоль левой границы окна и прокручиваться вперед смещением ползунка сверху вниз. Другие возможные значения : BOTTOM_RIGHT, TOP_LEFT и TOP_RIGHT; в двух последних случаях прямой скроллинг осуществляется движением ползунка снизу вверх. nedit*text.autoWrapPastedText: False По умолчанию запрещает автоматический перенос слов при наборе текста. Лучше так и оставить - настроить различные опции переноса слов для каждого конкретного сдучая проще настроить через меню Preferences - Wrap (или Preferences - Default Settings - Wrap), как было описано выше. nedit*text.heavyCursor: False Смысл этой строки не очень понял. Когда я вставлял ее в первозданном виде, курсор у меня просто исчезал вообще. Оригинальный комментарий: For monitors with poor resolution or users who have difficulty seeing the cursor, makes the cursor in the text editing area of the window heavier and darker. nedit*text.foreground: black Переходим к самому интересному - нстройке цветовой гаммы. Это - цвет шрифта набираемого текста. Смысл значения, думаю, понятен, а от рекомендаций воздержусь - товарищей нет на цвет и шритфа. nedit*text.background: white В этой строке определяется цвет фона редактируемого поля. nedit*text.selectForeground: black А здесь определяется цвет текста выделенного первичным способом (левой кнопкой мыши или стрелками указателя курсора при нажатой клавише Shift) фрагмента. nedit*text.selectBackground: gray80 Определение цвета фона выделенного первичным способом фрагмента. Следует заметить только, что число после наименования цвета обозанчает яркость (saturation) его в процентах. То есть gray80 - это светло-серый, а, скажем, gray20 - темно-серый. Во всех относящихся к цветовой гамме пунктах возможны также значения имени цвета с прилагателными - light или dark. nedit*text.highlightForeground: white Смысла этой строки (в отличие от следующей) не понял: изменение цвета в ней у меня не дает никакого видимого эффекта. Потому привожу оригинальный комментарий: Foreground (text) color for highlights (parenthesis flashing) in the text editing area of the NEdit window. nedit*text.highlightBackground: red Насколько установлено эмпирически, определяет цвет подсветки парных элементов (например, открывающей скобки при фиксации курсора на закрывающей). Оригинальный комментарий: Color for highlights (parenthesis flashing) in the text editing area of the NEdit window. nedit*text.cursorForeground: black Ну, понятно, просто цвет курсора. nedit*text.lineNumForeground: gray47 Цвет, которым передается нумерация строк (если эта опция включена). nedit*text.blinkRate: 600 А это частота мерцания курсора в миллисекундах. Если установить значение 0, курсор мерцать не будет. nedit*text.Translations: Не понял, оригинальный комментарий таков: Modifies key bindings (see below). Однако "below" я ничего по этому поводу не обнаружил, по карйней мере в этом разделе. nedit*foreground: black Задает цвет текста меню и диалоговых панелей. nedit*background: gray70 А здесь определяем цвет фона меню, диалоговых панелей и полосы прокрутки. nedit*fontList: helvetica-bold-14 В этой строке можно, наконец, определить гарнитуру, начертание и кегль шрифта интерфейсных элементов. За исключением шрифта в полях, скажем имен файлов при их открытии или сохранении, или в полях ввода кода и параметров в диалогах настройки меню, например (ни в том, ни в другом случае изменить шрифт мне не удалось). Не оказывает эта строка (также как и настройка через меню) и на шрифт вывода сообщений системы помощи, о чем скажу ниже. nc.autoStart: False Этот и следующий параметр, судя по всему, имеют отношение к применению NEdit в системах клиент/сервер. Смысла не понял, привожу оригинальный комментарий: Whether the nc program should automatically start an NEdit server (without prompting the user) if an appropriate server is not found. nc.serverCommand: nedit -server Оригинальный комментарий: Command used by the nc program to start an NEdit server. Далее следует фраза такого содержания, которую я понял как предложение использовать всякого рода расширения имен элементов, такие, как .background и т.д., для изменения цветов, шрифтов и прочих характеристик следующих далее элементов: nedit*statsForm Предлагает поределить вышеуказанные характеристики для статусной строки и строки поиска. При желании одна характеристика может распространяться на оба элемента, для этого вместо (.) следует использовать (*). Например, строка nedit*statsForm*background: gray задает для них единый серый цвет фона. nedit*menuBar В этой и нижеследующих строках можно по той же модели определить характеристики линии главного меню, nedit*textHorScrollBar ... полосы горизонтальной... nedit*textVertScrollBar ... и вертикальной прокрутки. nedit*helpText Эта строка, якобы, позволяет определить характеристики окна системы помощи. Однако у меня строка вида nedit*helpText*fontList: -cronyx-fixed-medium-r-*-*-20-*-*-*-*-*-koi8-r на шрифт сообщений Help'а никакого действия не оказала.



Тем не менее, эту проблему удалось победить методом ползучего эмпиризма, а именно, поместив собственноручно сконструированную строку nedit*font: -cronyx-fixed-medium-r-*-*-20-*-*-*-*-*-koi8-r

Не возьмусь судить, насколько она синтаксически грамотна, но, по крайней мере, после этого шрифт сообщений в окне помощи действительно изменился.

Как можно видеть, в секцию !nedit файла /$HOME/.Xdefaults можно внести изрядное количество строк. Но можно - не значит нужно. Достаточно ограничиться только теми строками, определяющими характеристики, не устраивающие вас по умолчанию. Так, я ограничился настройкой шрифтов текста, меню и системы помощи, а также цветовой гаммы рабочаго поля и интерфесных элементов - и прекрасно себя чувствую. Настолько, что рискнул в приложении 2 привести в качестве примера фрагмент своего файла /$HOME/.Xdefaults. Каковой, изменив при желании, можно просто поместить в свою конфигурацию. За чистоту синтаксиса поручиться не могу, но за работоспособность - готов.

Таким образом, редактированием файла /$HOME/.Xdefaults удается настроить то немногое, что не получается настроить через главное меню. Однако в домашнем каталоге пользователя можно обнаружить еще два конфигурационных файла, имеющих отношение к NEdit -


Содержание раздела