|
Аргументы командной строкиGNU Emacs обрабатывает аргументы командной строки, которые запрашивают различные действия при вызове Emacs. Они существуют для совместимости с другими редакторами и для сложных процедур. Мы не рекомендуем использовать их для обычного редактирования. Аргументы, начинающиеся со знака `-', называются ключами. Остальные аргументы задают файлы, к которым нужно обратиться. Emacs обращается к указанным файлам во время запуска. Имя файла, заданное в командной строке последним, становится текущим буфером; другие файлы также присутствуют, но в других буферах. Как обычно, особый аргумент `--' говорит, что все последующие аргументы являются именами файлов, а не ключами, даже если начинаются на `-'. Командные ключи Emacs могут задавать многие вещи, например размер и положение X-окна, используемого Emacs, его цвета и так далее. Некоторые ключи поддерживают продвинутое использование, это, например, запуск лисповских функций для файлов в пакетном режиме. Разделы в этой главе описывают доступные ключи, расположенные в соответствии с их назначением. Есть два способа записи ключей: короткие формы, начинающиеся с одного знака `-', и длинные формы, начинающиеся с `--'. Например, `-d' -- это короткая форма, а `--display' -- соответствующая длинная форма. Длинные формы с `--' легче запомнить, но дольше печатать. Однако, вы не обязаны писать имя ключа полностью, достаточно любого однозначного сокращения. Когда длинный ключ принимает аргумент, вы можете использовать для разделения имени ключа и аргумента либо пробел, либо знак равенства. Таким образом, вы можете написать как `--display sugar-bombs:0.0', так и `--display=sugar-bombs:0.0'. Мы рекомендуем использовать знак равенства, так как он более четко показывает взаимосвязь, и в приведенных ниже таблицах всегда используется знак равенства. Большинство ключей указывают, как инициализировать Emacs, или устанавливают параметры для всего сеанса Emacs. Мы называем их ключами запуска. Немногие ключи указывают, что нужно сделать: например, загрузить библиотеки, вызвать функции или выйти из Emacs. Такие ключи называют ключами действия. Их и имена файлов вместе называют аргументами действия. Emacs обрабатывает все аргументы действия в том порядке, в котором они были записаны. Аргументы действияВот таблица аргументов и ключей действия:
Файл инициализации может получить доступ к значениям аргументов
действия через список в переменной Ключи запускаКлючи запуска задают параметры для данного сеанса Emacs. В этом разделе описаны более общие ключи запуска; некоторые другие ключи, относящиеся к X Windows, вводятся в следующих разделах. Некоторые ключи запуска влияют на процесс загрузки файлов
инициализации. Обычно Emacs загружает
Пример аргументов командной строкиЗдесь приведен пример использования Emacs с аргументами и ключами. Он
предполагает, что у вас есть программа на Лиспе, называемая
emacs -batch foo.c -l hack-c -f save-buffer >& log Это говорит Emacs обратиться к файлу Возврат в Emacs с аргументамиВы можете задать для Emacs аргументы действия, когда вы возвращаетесь
в него после приостановки. Чтобы подготовиться к этому, поместите в ваш
файл (add-hook 'suspend-hook 'resume-suspend-hook) (add-hook 'suspend-resume-hook 'resume-process-args) Для дальнейшей подготовки вы должны выполнить сценарий оболочки,
Когда вы возвращаетесь в Emacs, правильно работают только аргументы действия. Аргументы запуска не распознаются -- так или иначе, их слишком поздно исполнять. Обратите внимание, возврат в Emacs (с аргументами или без) должен
производиться из оболочки, являющейся родительским процессом задания
Emacs. Именно поэтому Эти псевдонимы используют сервер Emacs, если оказалось, что он уже
запущен. Однако, они не могут определить это абсолютно точно. Они
могут полагать, что сервер всё ещё запущен, Emacs, потому что файл
Переменные средыВ этом приложении описано, как Emacs использует переменные среды. Переменная среды -- это строка, передаваемая операционной системой в Emacs, а все множество переменных среды называется средой. Имена переменных среды регистрозависимы, и для них принято использовать только заглавные буквы. Так как переменные среды исходят от операционной системы, общего способа для их установки нет; он зависит от используемой вами операционной системы и в особенности от оболочки. Например, так можно установить переменную среды `ORGANIZATION' в значение `не особая' с использованием bash: export ORGANIZATION="не особая" а так это можно сделать в csh или tcsh: setenv ORGANIZATION "не особая" Когда Emacs настроен для использования оконной системы X, он наследует большое число переменных среды из библиотеки X. Для дальнейшей информации смотрите документацию по X Windows. Общие переменные
Другие различные переменныеСледующие переменные используются лишь в определённых конфигурациях:
Указание имени дисплеяПеременная среды `DISPLAY' сообщает всем X-клиентам, включая Emacs, где нужно отображать их окна. Её значение создаётся автоматически при обычных обстоятельствах, когда вы включили X-сервер и запускаете задачи локально. Но иногда вам может понадобиться указать дисплей самим; например, если вы заходите на удалённую систему и хотите запускать программы-клиенты удалённо, но с отображением на вашем локальном экране. В случае с Emacs, основная причина, по которой люди изменяют дисплей по умолчанию, состоит в том, чтобы позволить им зайти на другую систему и запустить в ней Emacs, но отображать его окна на локальном терминале. Ситуация, когда вам может понадобиться зайти на другую систему, возникает, к примеру, когда там находятся файлы, которые вы собрались редактировать, или исполняемый файл Emacs. Переменная среды `DISPLAY' имеет следующий синтаксис: `машина:дисплей.экран', где машина --- это имя машины, где запущен сервер системы X Windows, дисплей --- это произвольно присваиваемое число, отличающее ваш сервер (X-терминал) от других серверов на той же машине, а экран -- это редко используемое поле, позволяющее X-серверу контролировать несколько терминальных экранов. Точка и поле экран необязательны. Если поле экран включают, оно обычно равно нулю. Для примера, если ваша машина называется `glasperle', и ваш сервер -- первый (и, возможно, единственный) сервер в конфигурации, то переменная `DISPLAY' равна `glasperle:0.0'. Вы можете указать имя дисплея явно при запуске Emacs, либо изменив переменную `DISPLAY', либо с помощью ключа `-d дисплей' или `--display=дисплей'. Вот пример: emacs --display=glasperle:0 & Вы можете подавить прямое использование X Windows с помощью ключа `-nw'. Это ключ запуска. Он велит Emacs отображать, используя на управляющем терминале обычные знаки ASCII. Иногда установки защиты доступа не позволяют программе с удалённой системы выводить на ваш локальный дисплей. В таком случае, попытка запуска Emacs даст подобное сообщение: Xlib: connection to "glasperle:0.0" refused by server Вы, вероятно, сможете справиться с этой проблемой, предоставив при
помощи команды Ключи для задания шрифтаПо умолчанию Emacs отображает текст шрифтом с именем `9x15', в котором каждый знак имеет ширину девять и высоту пятнадцать пикселей. Вы можете указать в командной строке другой шрифт с помощью ключа `-fn имя'.
В X Windows каждый шрифт обладает длинным именем, состоящим из одиннадцати слов или чисел, разделенных дефисами. У некоторых шрифтов кроме этого есть и более короткие псевдонимы -- `9x15' один из таких псевдонимов. Emacs допускает оба вида имен. Вы можете использовать шаблоны имён шрифтов; тогда Emacs позволит X Windows выбрать один из шрифтов, соответствующих шаблону. Вот пример, в котором задаётся шрифт, чьим псевдонимом, как оказывается, является `6x13': emacs -fn "-misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1" & Вы также можете указать шрифт в вашем файле emacs.font: -misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1 Полное имя шрифта имеет следующий формат: -производитель-семейство-жирность-наклон-тип_ширины-стиль... ...-пиксели-высота-гориз-верт-пропорциональность-ширина-кодировка
Используйте только равноширинные шрифты -- то есть такие, в которых
все знаки имеют одинаковую ширину; Emacs пока не умеет правильно
отображать шрифты переменной ширины. Любой шрифт с буквой `m' или
`c' в поле длинного имени пропорциональность ---
равноширинный. Вот как использовать программу xlsfonts -fn '*-*-*-*-*-*-*-*-*-*-*-m*' xlsfonts -fn '*-*-*-*-*-*-*-*-*-*-*-c*' Чтобы просмотреть, как выглядит конкретный шрифт, используйте команду
xfd -fn 6x13 покажет все знаки шрифта `6x13'. Во время работы Emacs вы можете поменять шрифт текущего фрейма (смотрите раздел Установка параметров фрейма) или определённого сорта текста (смотрите раздел Использование разных начертаний). Параметры для задания цветовЕсли у вас есть цветной дисплей, вы можете указать, какие цвета должны
использоваться для различных частей экрана Emacs. Чтобы узнать, какие
цвета доступны в вашей системе, посмотрите файл
Вот список ключей для задания цветов:
Например, чтобы получить коралловый указатель мыши и синевато-серый текстовый курсор, введите: emacs -ms coral -cr 'slate blue' & Вы можете инвертировать цвета текста и фона с помощью ключа `-r' или через ресурс X Windows `reverseVideo'. Параметры геометрии окнаКлюч `-geometry' управляет положением начального фрейма Emacs. Формат для указания геометрии окна такой:
Emacs интерпретирует геометрию в тех же единицах, что и Так как последние две строки фрейма занимают строка режима и эхо-область, высота начального текстового окна на 2 меньше высоты, в указанной вами геометрии. В версиях Emacs, не использующих X-toolkit, полоска меню также занимает одну строку из указанного числа. Вы не обязаны писать все поля при задании геометрии. Если вы опустите и сдвиг-по-x, и сдвиг-по-y, программа управления окнами сама решит, где размещать фрейм Emacs, возможно, позволяя вам поместить его с помощью мыши. Например, `164x55' задаёт окно шириной 164 столбцов, достаточной для двух расположенных рядом окон обычной ширины, и высотой 55 строк. По умолчанию ширина равна 80 столбцам, а высота -- 40 строкам. Вы можете не задавать ширину или высоту, или и то, и другое. Если описание геометрии начинается целым числом, Emacs интерпретирует его как ширину. Если вы начнете описание с `x', за которым идет число, Emacs воспримет это как высоту. Таким образом, `81' задаёт только ширину; `x45' задаёт только высоту. Если вы написали в начале `+' или `-', это начинает описание сдвига, что означает, что оба размера опущены. Таким образом, `-3' задаёт только сдвиг-по-x. (Если вы задали лишь один сдвиг, это всегда сдвиг-по-x.) `+3-3' задаёт и сдвиг-по-x, и сдвиг-по-y, помещая фрейм возле нижнего левого края экрана. Вы можете указать значения по умолчанию для любого из этих полей в
файле Внутренние и внешние рамкиФрейм Emacs имеет внутреннюю и внешнюю рамки. Внутренняя рамка --- это дополнительная полоска цвета фона по четырем сторонам фрейма. Внутреннюю рамку добавляет сам Emacs. Внешняя рамка добавляется программой управления окнами за пределами внутренней рамки; она может содержать различные кнопки, на которые вы можете щёлкнуть для перемещения или минимизирования этого окна.
Когда вы задаёте размер фрейма, ширина рамок не учитывается. Позиция фрейма отсчитывается от внешней границы внешней рамки. Для задания внутренней рамки шириной n пикселей используйте ключ `-ib n'. По умолчанию это 1. Для задания внешней рамки шириной n пикселей используйте ключ `-bw n' (хотя программа управления окнами может и не учесть заданное вами число). По умолчанию ширина внешней рамки равна двум. Заголовки фреймовФрейм Emacs может иметь заголовок или не иметь его. Заголовок фрейма, если задан, появляется в оформлении окна и пиктограммах как имя этого фрейма. Если заголовок фрейма Emacs не задан, по умолчанию он будет составлен из имени исполняемой программы и имени вашей машины (если есть только один фрейм), или им будет имя буфера в выбранном окне (если есть несколько фреймов). Вы можете указать заголовок начального фрейма Emacs с помощью ключа командной строки:
Ключ `--name' (смотрите раздел X-ресурсы) также задаёт заголовок начального фрейма Emacs. ПиктограммыБольшинство программ управления окнами позволяют пользователю "минимизировать" фрейм, убирая его из виду и оставляя на его месте небольшое отличительное окно-"пиктограмму". Если щёлкнуть на окне-пиктограмме, снова появится сам фрейм. Если у вас одновременно запущено несколько клиентов, вы можете избежать загромождения экрана, минимизировав большинство из них.
Ключ `-i' или `--icon-type' говорит Emacs использовать пиктограмму, содержащую рисунок с изображением гну GNU. Если этот ключ не задан, Emacs предоставляет выбор пиктограммы программе управления окнами -- обычно это просто небольшой прямоугольник с заголовком фрейма. Ключ `-iconic' велит Emacs запускаться как пиктограмма, а не открывая фрейм обычным способом. В таком случае пиктограмма только показывает, что Emacs запустился; обычный текстовый фрейм не появляется, пока вы не деминимизируете его. X-ресурсыЗапущенные в системе X Windows программы организуют свои
пользовательские параметры в иерархию классов и ресурсов. Вы можете
задать для этих параметров значения по умолчанию в вашем файле
X-ресурсов, обычно называемом Каждая строка в этом файле задаёт значение одного параметра или набора связанных параметров для одной или нескольких программ (возможно, даже для всех программ). Программы определяют именованные ресурсы с конкретным смыслом. Они также определяют, как ресурсы группируются в именованные классы. Например, ресурс `internalBorder' в Emacs контролирует ширину внутренней рамки, а ресурс `borderWidth' -- ширину внешней рамки. Оба этих ресурса являются частью класса `BorderWidth'. В этих именах важен правильный регистр букв. В файле emacs.borderWidth: 2 Или вы можете использовать имя класса, чтобы задать то же значение для всех ресурсов этого класса. Вот пример: emacs.BorderWidth: 2 Если вы задали значение для класса, оно становится значением по умолчанию для всех ресурсов этого класса. Вы также можете указать значения для отдельных ресурсов; для этих конкретных ресурсов они перекроют значение, общее для класса. Таким образом, следующий пример задаёт 2 как ширину всех рамок по умолчанию, но заменяет это значение на 4 для внешней рамки: emacs.Borderwidth: 2 emacs.borderwidth: 4 Порядок, в котором эти строки появляются в этом файле, не играет роли. Также, ключи командной строки всегда обладают приоритетом перед файлом X-ресурсов. Строка `emacs' в примере выше также является именем ресурса. На самом деле, она представляет собой имя исполняемого файла, который вы использовали для запуска Emacs. Если Emacs установлен под другим именем, он ищет ресурсы с этим именем, а не с `emacs'.
Для согласованности, `-name' также задаёт имя для использования со значениями других ресурсов, не принадлежащих какому-то определённому фрейму. Ресурсы, именующие любой запущенный Emacs, также образуют класс; его имя -- `Emacs'. Если вы напишете `Emacs' вместо `emacs', то такой ресурс будет относиться ко всем фреймам во всех заданиях Emacs, вне зависимости от заголовков фреймов и имени исполняемого файла. Вот пример: Emacs.BorderWidth: 2 Emacs.borderWidth: 4 Вы можете указать строку значений дополнительных ресурсов для Emacs с
помощью ключа командной строки Следующая таблица перечисляет имена ресурсов, обозначающих параметры для Emacs, каждый со своим классом:
Это ресурсы для изменения внешнего вида определённых начертаний (смотрите раздел Использование разных начертаний):
X-ресурсы для меню LucidЕсли установленный на вашей системе Emacs был собран с использованием библиотеки с виджетами меню Lucid, то полоска меню -- это отдельный виджет, и у него свои ресурсы. Имена этих ресурсов содержат строку `pane.menubar' (как всегда, после строки вызова Emacs или `Emacs', что обозначает любой вызов). Задавайте их так: Emacs.pane.menubar.ресурс: значение Например, чтобы задать для пунктов меню шрифт `8x16', напишите так: Emacs.pane.menubar.font: 8x16 Ресурсы для всплывающих меню, а не полоски меню, начинаются с `menu*' подобным же образом. Например, чтобы задать для пунктов всплывающих меню шрифт `8x16', напишите следующее: Emacs.menu*.font: 8x16 Для диалогов вместо `menu' пишите `dialog': Emacs.dialog*.font: 8x16 Опыт показывает, что на некоторых системах вам может понадобиться добавить перед `pane.menubar' или `menu*' строку `shell.'. На некоторых других системах вы должны не добавлять `shell.'. Вот перечень ресурсов для полоски меню и всплывающих меню:
X-ресурсы для меню MotifЕсли установленный на вашей системе Emacs был собран с использованием библиотеки виджетов Motif, то полоска меню -- это отдельный виджет, и у него свои ресурсы. Имена этих ресурсов содержат строку `pane.menubar' (как всегда, после строки вызова Emacs или `Emacs', что обозначает любой вызов). Задавайте их так: Emacs.pane.menubar.подвиджет.ресурс: значение Каждая отдельная строка в полоске меню является подвиджетом; имя подвиджета такое же, что и текст пункта. Например, слово `Files' в полоске меню -- это часть подвиджета с именем `emacs.pane.menubar.Files'. Вероятнее всего вы захотите задать одни и те же ресурсы для всей полоски меню. Чтобы сделать это, используйте `*' вместо имени конкретного подвиджета. Например, чтобы задать для пунктов меню шрифт `8x16', напишите следующее: Emacs.pane.menubar.*.fontList: 8x16 Это также задаёт значение этого ресурса для подменю. Каждый пункт в подменю полоски меню также имеет собственное имя для X-ресурсов; например, подменю `Files' имеет пункт, называемый `Save Buffer'. Описание ресурса для пункта подменю выглядит так: Emacs.pane.menubar.popup_*.меню.пункт.ресурс: значение Например, задать шрифт для пункта `Save Buffer' можно следующим образом: Emacs.pane.menubar.popup_*.Files.Save Buffer.fontList: 8x16 Для пункта в подменю второго уровня, таком как `Check Message' в подменю `Spell' в меню `Edit', ресурс соответствует такому шаблону: Emacs.pane.menubar.popup_*.popup_*.меню.ресурс: значение Например, Emacs.pane.menubar.popup_*.popup_*.Spell.Check Message: значение Невозможно определить ресурс для всех пунктов полоски меню, не определяя их также и для подменю. Поэтому, если вы хотите, чтобы пункты подменю выглядели не так, как сама полоска меню, вы должны попросить об этом в два этапа. Сначала задайте ресурс для всех их; затем переопределите это значение только для подменю. Вот пример: Emacs.pane.menubar.*.fontList: 8x16 Emacs.pane.menubar.popup_*.fontList: 8x16 Для всплывающих меню используйте `menu*', а не `pane.menubar'. Например, чтобы задать для пунктов всплывающих меню шрифт `8x16', напишите вот это: Emacs.menu*.fontList: 8x16 Вот перечень ресурсов для полосок меню и всплывающих меню:
Назад | Вперед | Содержание |
|
Распространение материалов сайта означает, что распространитель принял условия лицензионного соглашения. Идея и реализация: © Владимир Довыденков и Анатолий Камынин, 2004-2024 |
Социальные сети