Настройка переменных редактора Emacs.
Другая частая причина редактирования файла .emacs заключается в изменении значений переменных. Процедуры Emacs используют в процессе работы переменные. Поэтому, изменяя значения встроенных переменных, можно влиять на поведение Emacs.
Некоторые переменные содержат числовые значения. Например, переменная next-screen-context-lines содержит количество строк данного экрана, остающихся при нажатии клавиш Page Up или Page Down. Если значение данной переменной - 2, то при нажатии одной из этих клавиш на экране останутся две строки от предыдущего экрана. Чтобы проверить значение данной переменной, введите C-h v, а затем имя переменной.
Значение переменных можно менять, если нажать M-x, а затем в командной строке ввести set-variable. Нажмите Enter, и Emacs запросит имя устанавливаемой переменной. После ввода имени Emacs запросит новое значение переменной.
Это - достаточно многоходовая комбинация, особенно если учесть имя переменной next-screen-context-lines. Если при каждом входе в Emacs, нужно устанавливать значение данной переменной равное 1, воспользуйтесь функцией Emacs LISP setq, чтобы автоматизировать данный процесс. Добавьте следующую строку в файл .emacs:
(setq next-screen-context-lines 1) |
Не все переменные поддерживают числовые значения. Некоторые, такие как load-path, являются символьными переменными. load-path - список подкаталогов, куда обращается Emacs, когда необходимо загрузить файл, содержащий LISP-программу. Как будет показано в главе "Редактирование Документов SGML в редакторе Emacs и PSGML", при работе с PSGML нужно будет изменить значение переменной load-path.
Многие переменные Emacs являются Булевыми. Булева переменная (названная по имени английского математика Джорджа Була, жившего в 19-м веке) - подобна выключателю, который может иметь только два положения: вкл. или выкл. Emacs использует большое количество Булевых переменных, что дает возможность гибкой настройки его работы. Например, можно задать, чтобы при пошаговом поиске (C-s или C-r) Emacs осуществлял поиск либо с учетом, либо без учета регистра.
Управлять чувствительностью к регистру можно меняя значение переменной case-fold-search. Чтобы заставить Emacs игнорировать значение регистра при поиске, добавьте следующую строку в файл .emacs:
(setq case-fold-search t) |
(setq case-fold-search nil) |
Чтобы сохранить клавиатурные макросы в файле ".emacs" так, чтобы можно было использовать макрокоманду без дополнительного переопределения, используется команда insert-kbd-macro, которая добавляет эквивалент макроопределения, написанный на Emacs LISP, в текущий буфер. Рассмотрим пример.
Удобная макрокоманда для пользователей SGML быстрый ввод комментариев. Чтобы определить макрос и начать запись макрокоманды, сначала нажмите C-x (, а затем наберите
<!-- --> |
Чтобы присвоить записанной макрокоманде имя, нажмите M-x и наберите в командной строке минибуфера name-last-kbd-macro. Допустим это имя - sgml-comment.
Затем, отредактируйте файл .emacs, или его эквивалент в операционной системе. Вставьте пустую строку, куда позднее будет вставлено макроопределение. Нажмите M-x, а затем в командной строке минибуфера введите команду insert-kbd-macro. Emacs запросит имя вставляемой макрокоманды, наберите sgml-comment. Появится следующее:
(fset 'sgml-comment [?< ?! ?- ?- ? ? ?- ?- ?> left left left left]) |
(global-set-key "^Co" 'sgml-comment) |