Приложение A  Аргументы командной строки – ЧАСТЬ 3

пропорциональность

Это может быть ‘m’ (monospace), ‘p’ (proportional) или ‘c’ (character cell). Emacs

может использовать шрифты ‘m’ и ‘c’.

ширина     Это средняя ширина знака, в пикселях, умноженных на десять.

кодировка Изображаемый этим шрифтом набор знаков. Обычно вам нужно использовать

‘iso8859-5’.

Используйте только равноширинные шрифты — то есть такие, в которых все знаки имеют одинаковую ширину; Emacs пока не умеет правильно отображать шрифты переменной ширины. Любой шрифт с буквой ‘m’ или ‘c’ в поле длинного имени пропорциональность — равноширинный. Вот как использовать программу xlsfonts для получения списка всех доступных на вашей системе равноширинных  шрифтов:

xlsfonts -fn ’*x*’  | egrep "^[0-9]+x[0-9]+" xlsfonts -fn ’*-*-*-*-*-*-*-*-*-*-*-m*’ xlsfonts -fn ’*-*-*-*-*-*-*-*-*-*-*-c*’

Чтобы просмотреть, как выглядит конкретный шрифт, используйте команду xfd.  Напри-

мер,

xfd  -fn 6×13

покажет все знаки шрифта ‘6x13’.

Во время работы Emacs вы можете поменять шрифт текущего фрейма (см. Раздел 17.10 [Параметры фрейма], с. 153) или определенного сорта текста (см. Раздел 17.13 [Начертания], с. 155).

A.8  Параметры для задания  цветов

Если у вас есть цветной дисплей, вы можете  указать, какие цвета должны использоваться для различных частей экрана Emacs. Чтобы узнать, какие цвета доступны в вашей системе, посмотрите файл ‘/usr/lib/X11/rgb.txt’. Если вы не указали цвета, по умолчанию фон будет белым, а все остальное  — черным. На монохромном  дисплее, текст будет черным, фон будет белым, а рамка — серой, если это поддерживается дисплеем.

Вот список ключей для задания цветов:

‘-fg цвет’

‘-foreground-color=цвет’

Задает цвет текста.

‘-bg цвет’

‘-background-color=цвет’

Задает цвет фона.

‘-bd цвет’

‘-border-color=цвет’

Задает цвет рамки в X-окна.

‘-cr цвет’

‘-cursor-color=цвет’

Задает цвет курсора, показывающего положение точки.

‘-ms цвет’

‘-mouse-color=цвет’

Задает цвет указателя мыши, когда он находится во фрейме Emacs.

‘-r’

‘-reverse-video’

Инверсное изображение — обменять цвета текста и фона.

Например, чтобы получить коралловый указатель мыши и синевато-серый текстовый курсор, введите:

emacs  -ms coral -cr ’slate blue’ &

Вы можете инвертировать цвета текста и фона с помощью ключа ‘-r’ или через ресурс

X Windows ‘reverseVideo’.

A.9  Параметры геометрии окна

Ключ ‘-geometry’  управляет положением начального фрейма Emacs. Формат для ука-

зания геометрии окна такой:

‘-g ширинаxвысота{+-}сдвигпо-x{+-}сдвигпо-y

Задает размеры окна, ширину и высоту (измеряемые в знаковых столбцах и строках), и положение сдвигпо-x и сдвигпо-y (измеряемые в пикселях).

‘-geometry=ширинаxвысота{+-}сдвигпо-x{+-}сдвигпо-y

Это другой способ написать то же самое.

{+-} означает плюс или минус. Знак плюс перед сдвигпо-x говорит, что это расстояние от левого края экрана; знак минус говорит, что это расстояние от правого края. Знак плюс перед сдвигпо-y обозначает, что это расстояние от верхнего края экрана, а знак минус — что это расстояние от нижнего края. Сами значения сдвигпо-x и сдвигпо-y могут быть положительными или отрицательными, но это не меняет их смысл, только направление.

Emacs интерпретирует геометрию в тех же единицах, что и xterm.  ширина и высота измеряются в знаках, так  что фрейм  с крупным шрифтом будет больше,  чем фрейм  с мелким шрифтом. Сдвигпо-x и сдвигпо-y измеряются в пикселях.

Так как последние две строки фрейма занимают строка режима и эхо-область, высота начального текстового окна на 2 меньше высоты, в указанной вами геометрии.  В версиях Emacs, не использующих  X-toolkit,  полоска меню также занимает одну строку из указанного числа.

Вы не обязаны писать все поля при задании геометрии.

Если вы опустите и сдвигпо-x, и сдвигпо-y, программа управления окнами сама решит,  где  размещать фрейм  Emacs, возможно, позволяя вам поместить его с помощью мыши. Например, ‘164x55’ задает окно шириной 164 столбцов, достаточной для двух расположенных рядом окон обычной ширины, и высотой 55 строк.

По умолчанию ширина равна 80 столбцам, а высота — 40 строкам.  Вы можете  не задавать ширину или высоту, или и то, и другое.  Если описание геометрии начинается целым числом, Emacs интерпретирует его как ширину. Если вы начнете описание с ‘x’, за которым идет число, Emacs воспримет это как высоту. Таким образом, ‘81’ задает только ширину; ‘x45’ задает только высоту.

Если вы написали в начале ‘+’ или ‘-’, это начинает описание сдвига, что означает, что оба размера опущены.  Таким образом, ‘-3’  задает только сдвигпо-x.  (Если вы задали лишь один сдвиг, это всегда сдвигпо-x.) ‘+3-3’ задает и сдвигпо-x, и сдвигпо-y, помещая фрейм возле нижнего левого края экрана.

Вы  можете  указать  значения по  умолчанию для любого из  этих  полей в  файле

‘.Xdefaults’, ключ ‘-geometry’  тогда перекрывает эти установки.

A.10  Внутренние и внешние рамки

Фрейм Emacs имеет внутреннюю и внешнюю рамки. Внутренняя рамка — это дополни-

тельная полоска цвета фона по четырем сторонам фрейма. Внутреннюю рамку добавляет

сам Emacs. Внешняя рамка добавляется программой управления окнами за пределами внутренней рамки; она может содержать различные кнопки, на которые вы можете щелкнуть для перемещения или минимизирования этого окна.

‘-ib ширина’

‘-internal-border=ширина’

Задает ширину внутренней рамки.

‘-bw ширина’

‘-border-width=ширина’

Задает ширину внешней рамки.

Когда  вы задаете  размер фрейма,  ширина рамок не  учитывается.  Позиция фрейма отсчитывается от внешней границы внешней рамки.

Для задания внутренней рамки шириной n пикселей используйте  ключ  ‘-ib n’.   По умолчанию это 1.  Для задания внешней рамки шириной n пикселей используйте  ключ

‘-bw n’ (хотя программа управления окнами может и не учесть заданное вами число). По умолчанию ширина внешней рамки равна двум.

A.11  Заголовки фреймов

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

Вы можете указать заголовок начального фрейма Emacs с помощью ключа командной строки:

‘-title заголовок’

‘-title=заголовок’

‘-T заголовок’

Задает заголовок начального  фрейма Emacs.

Ключ ‘-name’ (см. Раздел A.13 [Ресурсы X], с. 396) также задает заголовок начального фрейма Emacs.

A.12  Пиктограммы

Большинство программ управления окнами позволяют пользователю “минимизировать” фрейм,  убирая его из виду и  оставляя на его месте  небольшое  отличительное окно“пиктограмму”.   Если щелкнуть на окне-пиктограмме,  снова появится сам фрейм.   Если у  вас одновременно  запущено несколько клиентов, вы можете  избежать  загромождения экрана, минимизировав большинство из них.

‘-i’

‘-icon-type’

Использовать в качестве пиктограммы Emacs портрет гну.

‘-iconic’

‘-iconic’   Запустить Emacs в минимизированном виде.

Ключ  ‘-i’  или ‘-icon-type’ говорит  Emacs использовать пиктограмму,  содержащую рисунок с изображением гну GNU. Если этот ключ не задан, Emacs предоставляет  выбор пиктограммы программе управления окнами — обычно это просто небольшой прямоугольник с заголовком фрейма.

Ключ ‘-iconic’ велит Emacs запускаться как пиктограмма, а не открывая фрейм обычным способом. В таком случае пиктограмма только показывает, что Emacs запустился; обычный текстовый фрейм не появляется,  пока вы не деминимизируете  его.

A.13  X-ресурсы

Запущенные в системе X Windows программы организуют свои пользовательские параметры в иерархию классов и ресурсов. Вы можете задать для этих параметров значения по умолчанию в вашем файле X-ресурсов, обычно называемом ‘~/.Xdefaults’.

Каждая строка в этом файле задает значение одного параметра или набора связанных параметров для одной или нескольких программ (возможно, даже для всех программ).

Программы определяют именованные ресурсы с  конкретным  смыслом.   Они  так-

же  определяют, как  ресурсы группируются  в именованные  классы.   Например, ресурс

‘internalBorder’ в Emacs контролирует ширину внутренней рамки, а ресурс ‘borderWidth’

— ширину внешней рамки.  Оба этих ресурса являются частью класса ‘BorderWidth’.   В

этих именах важен правильный регистр букв.

В файле ‘~/.Xdefaults’ вы можете задать значение для одного ресурса в каждой строке,

следующим образом:

emacs.borderWidth: 2

Или вы можете использовать имя класса, чтобы задать то же значение для всех ресурсов этого класса. Вот пример:

emacs.BorderWidth:  2

Если вы задали значение для класса, оно становится значением по умолчанию для всех ресурсов этого класса. Вы также можете указать значения для отдельных ресурсов; для этих конкретных ресурсов они перекроют  значение, общее для класса. Таким образом, следующий пример задает 2 как ширину всех рамок по умолчанию, но заменяет это значение на 4 для внешней рамки:

emacs.Borderwidth: 2 emacs.borderwidth: 4

Порядок, в котором эти строки появляются в этом файле, не играет роли. Также, ключи командной строки всегда обладают приоритетом перед файлом X-ресурсов.

Строка ‘emacs’ в примере выше также  является именем ресурса. На самом деле, она представляет собой имя исполняемого файла, который вы использовали для запуска Emacs. Если Emacs установлен под другим именем, он ищет ресурсы с этим именем, а не с ‘emacs’.

‘-name имя’

‘-name=имя’

Использовать имя в качестве имени ресурса (и заголовка) для начального фрейма Emacs. Этот ключ не влияет на остальные фреймы, но программы на Лиспе могут указать при создании фрейма его имя.

Если вы не задали этот ключ, по умолчанию в качестве имени ресурса исполь-

зуется имя исполняемого  файла Emacs.

‘-xrm значениересурса’

‘-xrm=значениересурса’

Устанавливает  значения X-ресурсов для данного задания Emacs (смотрите ни-

же).

Для согласованности, ‘-name’ также задает имя для использования со значениями дру-

гих ресурсов, не принадлежащих какому-то определенному фрейму.

Ресурсы, именующие любой запущенный Emacs, также  образуют класс; его имя —

‘Emacs’. Если вы напишете  ‘Emacs’  вместо ‘emacs’, то такой ресурс будет относиться ко

всем фреймам во всех заданиях Emacs, вне зависимости  от заголовков фреймов и имени исполняемого  файла. Вот пример:

Emacs.BorderWidth:  2

Emacs.borderWidth:  4

Вы можете указать строку значений дополнительных  ресурсов для Emacs с помощью ключа командной строки ‘-xrm=ресурсы’.  Текст ресурсы должен иметь тот  же  формат, что вы используете в файле X-ресурсов.  Чтобы задать спецификации нескольких ресурсов, разделите их переводом строки, как вы сделали бы в файле.  Вы также можете использовать ‘#include "имяфайла"’ для включения  файла ресурсов. Значения ресурсов, заданные через ‘-xrm’, имеет приоритет перед всеми остальными  спецификациями.

Следующая таблица перечисляет имена ресурсов, обозначающих параметры для Emacs,

каждый со своим классом:

background (class Background)

Название цвета фона.

bitmapIcon  (class BitmapIcon)

Если это ‘on’, использовать растровую пиктограмму (изображение гну),  если это ‘off’, предоставить право выбора пиктограммы программе управления окнами.

borderColor (class BorderColor)

Название цвета внешней рамки.

borderWidth  (class BorderWidth)

Ширина внешней рамки в пикселях.

cursorColor (class Foreground)

Название цвета для текстового курсора (точки).

font (class Font)

Имя шрифта для текста (или имя набора шрифтов, см. Раздел 18.10 [Наборы шрифтов], с. 170).

foreground (class Foreground)

Название цвета для текста.

geometry (class Geometry)

Размер и положение окна. Будьте осторожны, не определяйте этот ресурс как

‘emacs*geometry’, потому что это может повлиять на отдельные меню, а не только на сам фрейм Emacs.

Если этот ресурс задает положение, то оно относится только начальному фрейму Emacs (или, в случае ресурса для определенного  фрейма, только для этого фрейма). Однако, если здесь задан размер, то он относится ко всем фреймам.

iconName (class Title)

Заголовок для отображения на пиктограмме.

internalBorder (class BorderWidth)

Ширина внутренней рамки в пикселях.

menuBar (class MenuBar)

Если ‘on’, показывать во фреймах полоски меню; если ‘off’, не показывать.

minibuffer (class Minibuffer)

Если ‘none’, не создавать  в этом фрейме минибуфер. Вместо этого будет ис-

пользоваться отдельный фрейм минибуфера.

paneFont (class Font)

Имя шрифта для заголовков поля меню, в версиях Emacs, не использующих библиотеку виджетов.

pointerColor (class Foreground)

Цвет указателя мыши.

reverseVideo  (class ReverseVideo)

Если ‘on’, обменять цвета фона и текст, если ‘off’, использовать цвета, как они заданы.

verticalScrollBars (class ScrollBars)

Показывать во фреймах полоски прокрутки, если это ‘on’; показывать,  если это

‘off’.

selectionFont (class Font)

Имя шрифта для пунктов всплывающих меню в версиях Emacs, не использующих библиотеку виджетов. (Для версий, использующих  библиотеку виджетов, смотрите Раздел A.14 [X-ресурсы для Lucid], с. 398, а также Раздел A.15 [Xресурсы для Motif ], с. 399.)

title (class Title)

Название для отображения в заголовке начального фрейма Emacs.

Это ресурсы для изменения внешнего вида определенных начертаний (см. Раздел 17.13 [Начертания], с. 155):

начертание.attributeFont

Шрифт для заданного начертания.

начертание.attributeForeground

Цвет текста для заданного начертания.

начертание.attributeBackground

Цвет фона для заданного начертания.

начертание.attributeUnderline

Флаг подчеркивания для заданного начертания. Если ‘on’ или ‘true’, то под-

черкивать.

A.14  X-ресурсы для меню  Lucid

Если установленный на вашей системе Emacs был собран с использованием библиотеки с виджетами меню Lucid, то полоска меню — это отдельный виджет, и у него свои ресурсы. Имена этих ресурсов содержат строку ‘pane.menubar’ (как  всегда, после строки вызова Emacs или ‘Emacs’, что обозначает любой вызов). Задавайте их так:

Emacs.pane.menubar.ресурс:    значение

Например, чтобы задать для пунктов меню шрифт ‘8x16’, напишите так:

Emacs.pane.menubar.font: 8×16

Ресурсы для всплывающих меню, а не  полоски меню, начинаются с ‘menu*’ подобным же  образом.  Например, чтобы задать для пунктов  всплывающих меню шрифт ‘8x16’, напишите следующее:

Emacs.menu*.font:    8×16

Для диалогов вместо ‘menu’ пишите ‘dialog’:

Emacs.dialog*.font:   8×16

Опыт показывает, что на некоторых системах вам может понадобиться добавить перед

‘pane.menubar’ или ‘menu*’ строку ‘shell.’. На некоторых других системах вы должны не добавлять ‘shell.’.

Вот перечень ресурсов для полоски меню и всплывающих меню:

font         Шрифт текста пунктов меню.

foreground

background

Цвет текста.

Цвет фона.

buttonForeground

В полоске меню, цвет фона для выделенного пункта.

horizontalSpacing

Горизонтальный промежуток между пунктами. По умолчанию это 3.

verticalSpacing

Вертикальный промежуток между пунктами. По умолчанию это 1.

arrowSpacing

Горизонтальный промежуток между стрелкой (обозначающей подменю) и свя-

занным текстом. По умолчанию это 10.

shadowThickness

Толщина линии затенения вокруг виджета.

A.15  X-ресурсы для меню  Motif

Если установленный на вашей системе Emacs был собран с использованием библиотеки виджетов Motif, то полоска меню — это отдельный виджет, и у него свои ресурсы. Имена этих ресурсов содержат строку ‘pane.menubar’ (как всегда, после строки вызова Emacs или

‘Emacs’, что обозначает любой вызов). Задавайте их так:

Emacs.pane.menubar.подвиджет.ресурс:    значение

Каждая отдельная строка в полоске меню является подвиджетом;  имя подвиджета такое же, что и текст пункта. Например, слово ‘Files’ в полоске меню — это часть подвиджета с именем ‘emacs.pane.menubar.Files’.  Вероятнее всего вы захотите задать одни и те же ресурсы для всей полоски меню. Чтобы сделать это, используйте  ‘*’ вместо имени конкретного подвиджета. Например, чтобы задать для пунктов меню шрифт ‘8x16’, напишите следующее:

Emacs.pane.menubar.*.fontList:    8×16

Это также задает значение этого ресурса для подменю.

Каждый пункт в подменю полоски меню также имеет собственное имя для X-ресурсов; например, подменю ‘Files’ имеет пункт, называемый ‘Save Buffer’. Описание ресурса для пункта подменю выглядит так:

Emacs.pane.menubar.popup_*.меню.пункт.ресурс:  значение

Например, задать шрифт для пункта ‘Save Buffer’ можно следующим образом:

Emacs.pane.menubar.popup_*.Files.Save Buffer.fontList: 8×16

Для пункта  в подменю второго уровня, таком как  ‘Check Message’  в подменю ‘Spell’ в меню ‘Edit’, ресурс соответствует такому шаблону:

Emacs.pane.menubar.popup_*.popup_*.меню.ресурс:  значение

Например,

Emacs.pane.menubar.popup_*.popup_*.Spell.Check  Message: значение

Невозможно определить ресурс для всех пунктов полоски меню, не определяя их также и для подменю. Поэтому, если вы хотите, чтобы пункты  подменю выглядели  не так, как сама полоска меню, вы должны попросить об этом в два этапа. Сначала задайте ресурс для всех их; затем переопределите это значение только для подменю. Вот пример:

Emacs.pane.menubar.*.fontList:    8×16

Emacs.pane.menubar.popup_*.fontList:  8×16

Для всплывающих меню используйте ‘menu*’, а не ‘pane.menubar’. Например, чтобы за-

дать для пунктов всплывающих меню шрифт ‘8x16’, напишите вот это:

Emacs.menu*.fontList:    8×16

Вот перечень ресурсов для полосок меню и всплывающих меню:

armColor    Цвет для отображения кнопки со стрелкой.

fontList  Используемый шрифт.

marginBottom marginHeight marginLeft marginRight marginTop marginWidth

Количество пространства, которое следует  оставить вокруг  пункта  внутри рамки.

borderWidth

Ширина рамки вокруг пункта меню с каждой стороны.

shadowThickness

Ширина рамки затенения.

bottomShadowColor

Цвет рамки затенения снизу и справа.

topShadowColor

Цвет рамки затенения слева и сверху.

Для тех  пользователей, кто живет назад во времени,  здесь представлены  сведения об устарении Emacs до версии 19.  Мы надеемся,  что вам понравятся большие упрощения, появляющиеся из-за отсутствия определенных особенностей Emacs 20.

Поддержка многобайтных знаков и преобразование последовательности конец-строки полностью убраны. (Некоторые пользователи считают это грандиозным продвижением.) Коды знаков ограничены промежутком от 0 до 255, а файлы, импортированные на Unix-подобные системы, могут содержать в конце каждой строки знак ^M, чтобы вы не забывали о контроле над файлами типа MS-DOG.

Наборы шрифтов, системы кодирования и методы ввода также уничтожены.

Строка режима по умолчанию показывает строку ‘Emacs’, на случай, если вы забыли,

каким редактором пользуетесь.

Полосы прокрутки всегда находятся с правой стороны окна. Это ясно отделяет их от текста в окне.

Функция M-x customize  заменена  очень простой функцией M-x edit-options.   Она показывает вам все пользовательские  переменные с самого начала, так  что  вам  не нужно отыскивать нужные. Кроме того, для установки пользовательской переменной она предоставляет совсем немного команд, таких как s и x.

Клавиша hDELETEi  не делает в Emacs 19 ничего особенного, когда вы используете ее после выделения области с помощью мыши. В такой ситуации она делает то же, что и всегда: удаляет один предшествующий знак.

C-x C-w теперь не изменяет  основной режим в соответствии с новым именем файла.

Если вы хотите изменить основной режим, воспользуйтесь M-x normal-mode.

В режиме Transient Mark область подсвечивается в каждом окне.

Режим Outline не использует свойства перекрытия; вместо этого, он прячет строку, преобразуя предшествующий перевод в строки в код 015. Однако, когда вы сохраняете файл, знак 015 волшебным образом появляется в нем как перевод строки.

Теперь есть хитрый способ, которым вы можете активизировать минибуферы рекурсивно, даже если enable-recursive-minibuffers равна nil.  Все, что вам нужно сделать, — переключить окно на другое, не являющееся окном минибуфера, а затем использовать команду минибуфера. Таким методом вы можете произвести любое число уровней минибуферов, но M-x top-level выведет вас из всех.

Мы убрали ограничение на длину списков истории минибуферов; теперь они содержат  все аргументы минибуфера, использовавшиеся с начала сеанса.

Динамическое раскрытие сокращений теперь преобразует регистр очень простым  и прямолинейным  способом. Если вы запросили сохранение  регистра, все  раскрытие происходит по образцу введенного вами сокращения.

Команды compose-mail больше не существует;  C-x m теперь непосредственно запуска-

ет mail.

Нельзя отменить специальное значение некоторых знаков в именах файлов. Что  вы видите,  то и получаете:  если имя выглядит как имя удаленного  файла, то это  имя удаленного файла.

M-x grep-find удалена, потому что grep никогда и не терялся.

Некоторые команды Dired переорганизованы: двухзнаковые последовательности заме-

нены на быстрые однознаковые команды:

Для dired-mark-executables, напечатайте *.

Для dired-mark-directories, напечатайте /.

Для dired-mark-symlinks, напечатайте @.

Для dired-change-marks, напечатайте c.

Для dired-unmark-all-files, напечатайте C-M-?.

Для dired-unmark-all-marks, напечатайте C-M-? hRETi.

Но если вы хотите  использовать команду dired-flag-garbage-files,  &,  вам нужно перестать жить в прошлом.

В режиме C вы теперь можете задать предпочтительный стиль блоков комментариев.

Например, если вы хотите использовать стиль

/* blah blah

*/

вы должны установить переменную c-block-comments-indent-p в значение t.

Для настройки начертаний режима Font  Lock используйте  переменную  font-lockface-attributes. Для получения подробностей смотрите ее документацию.

Для эффективности режим Font  Lock теперь использует по умолчанию  наименьший поддерживаемый уровень оформления для выбранного основного режима.

Если вы уничтожаете буфер, все регистры, содержащие сохраненные позиции в этом буфере, будут указывать неизвестно куда.

Функция set-frame-font переименована в set-default-font.

Переменной tex-main-file не существует. Конечно, вы можете создать эту перемен-

ную, но это не даст ничего особенного.

Переменная  scroll-preserve-screen-position  удалена; также  исчезла и  возмож-

ность, которой она управляла.

Мы   удалили  функции   add-untranslated-filesystem   и    remove-untranslatedfilesystem и заменили их более простой, using-unix-filesystems.

Чтобы  следовать  продолжающемуся  уменьшению объема памяти компьютеров,  из Emacs 19 исключены многие другие файлы и функции. Нет необходимости упоминать здесь их все. Если вы попытаетесь применить одну из них, вы получите сообщение об ошибке, говорящее, что она не определена или не имеет значения.

Источник: Ричард Столмен, Руководство по GNU Emacs

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий