Різноманітні команди – ЧАСТИНА 9

‘~ / Emacs, так що значення параметрів встановлюватимуться кожен раз, коли ви

запускаєте Emacs Для того щоб зберегти параметр, активізуйте кнопку [State]

та оберіть операцію Save for Future Sessions.

Ви також можете відновити стандартні значення параметрів, активізуючи кнопку

‘[State] і вибираючи операцію Reset to Standard Settings. Насправді суще-

ствует три стандартних операції відновлення:

‘Reset Якщо ви внесли деякі зміни і не встановили параметр, то ця операція відновлює текст буфера настройки, щоб він соответствал поточному значенню

‘Reset to Saved’

Ця операція відновлює значення параметра останнім збережене значення і відповідно оновлює текст

‘Reset to Standard Settings’

Ця операція встановлює параметр в його стандартне значення і відповідно оновлює текст Ця операція також знищує будь збережене значення для даного параметра, так що в майбутніх сеансах роботи з Emacs ви будете отримувати стандартне значення

Стан групи показує, чи було щось у цій групі змінено, встановлено або збережене Ви можете вибрати операції Set for Current Session, Save for Future Sessions і різні види операції Reset для даної групи ці операції над групою застосовуються відразу до всіх налаштувань в групі і її підгрупах

На початку буфера налаштування знаходяться два рядки, що містять кілька активних полів:

[Set  for Current  Session]  [Save for Future  Sessions]

[Reset] [Reset  to  Saved] [Reset  to  Standard]     [Bury  Buffer]

Активізація кнопки [Bury Buffer] приховує буфер настройки Кожне з інших полів виконує операції – установку, збереження або відновлення – над кожним з пунктів в буфері, які можуть бути встановлені, збережені або відновлені

31223  Налаштування накреслень

Крім користувача параметрів, деякі групи настройки також включають в себе накреслення Коли ви переглядаєте вміст групи, в буфері налаштування показуються і параметри користувача, і накреслення з цієї групи Накреслення може виглядати так:

Custom Changed  Face:  (sample)

[State]: this face  is unchanged from  its standard  setting Face used when the  customize  item  has been changed Attributes:  [ ] Bold:   [toggle] off

[X] Italic:  [toggle] on

[ ] Underline: [toggle]  off

[ ] Inverse-Video: [toggle]  on [ ] Foreground:  black  (sample) [ ] Background:  white  (sample) [ ] Stipple:

Кожен атрибут накреслення розташовується на окремому рядку Поле [x] Перед імям атрибута показує, чи включений цей атрибут знак X позначає, що включений Ви можете включати або виключати атрибут, вибираючи дане поле Коли атрибут включений, ви можете змінити його значення звичайними способами

На чорно-білому дисплеї вам доступні для використання в якості фону такі кольори: black, white, gray, gray1 і gray3. Emacs підтримує ці відтінки сірого, використовуючи замість кольору штрихование фону за допомогою масок

Установка, збереження і скидання накреслення працює точно також, як і з користувач-

ськими параметрами (див Розділ 31222 [Зміна параметра], с 345)

Накреслення може задавати різний вигляд для різних типів дисплеїв Наприклад, накреслення може зробити текст червоним на кольоровому дисплеї, а на монохромному відображати цей текст жирним шрифтом Для того щоб вказати різний вигляд для даного накреслення, виберіть пункт Show Display Types з меню, яке зявляється при виборі кнопки

‘[State]’

Інший, більш загальний спосіб встановити атрибути заданого накреслення – використовувати команду Mx modify-face Ця команда зчитує імя накреслення і атрибути, один за іншим Для атрибутів, які задають кольори і маски, поточним значенням атрибута буде значення за замовчуванням – просто натиснітьhRETi, Якщо ви не хочете змінювати цей атрибут Наберіть none в тому випадку, коли ви хочете очистити даний атрибут

31224  Налаштування окремих пунктів

Замість того щоб знаходити параметр, який ви хочете змінити, переміщаючись крізь дерево груп, ви можете вказати, який конкретно параметр, накреслення або групу ви хочете налаштувати

M-x customize-option hRETпараметр hRETi

Створити буфер настройки тільки для одного параметра

M-x customize-face hRETнакреслення hRETi

Створити буфер настройки тільки для одного накреслення

M-x customize-group hRETгрупа hRETi

Створити буфер настройки тільки для однієї групи

M-x customize-apropos hRETi regexp hRETi

Створити буфер налаштування для всіх параметрів, накреслень і груп, які відповідають regexp

M-x customize-changed-options hRETверсія hRETi

Створити буфер налаштування для всіх параметрів, накреслень і груп, чий сенс змінився починаючи з зазначеної версії Emacs

M-x customize-saved

Створити буфер настройки, що містить всі параметри і накреслення, які ви зберегли за допомогою буферів настройки

M-x customize-customized

Створити буфер настройки, що містить всі параметри і накреслення, які ви змінили, але не зберегли

Якщо ви хочете змінити конкретний користувальницький параметр за допомогою буфера настройки, і ви знаєте його імя, то ви можете використовувати команду Mx customize-option і вказати імя цього параметра Це створює буфер настройки тільки для одного параметра

– Для того, який ви запросили Зміна, установка і збереження значення працює точно так само, як описано вище, але тільки для зазначеного параметра

Таким же чином ви можете змінити параметри конкретного накреслення, обраного по імені Для цього використовуйте команду Mx customize-face

Ви також можете створити буфер настройки для окремої групи, використовуючи команду

M-x customize-group У цьому буфері зявиться безпосереднє вміст вибраної

групи, в тому числі змінні-параметри, накреслення і інші групи Однак вміст підгруп спочатку буде приховано Ви можете переглянути їх вміст звичайним способом, вибравши кнопку [Show].

Для більш точної вказівки того, що ви хочете налаштувати, ви можете використовувати команду Mx customize-apropos Як аргумент ви вказуєте регулярний вираз потім у створеному буфері настройки відображаються всі параметри, накреслення і групи, чиї імена задовольняють цій регулярного виразу Якщо ви вкажете пусте регулярний вираз, то буфер налаштування включатиме всі групи, параметри і накреслення (але це займе тривалий час)

Коли ви встановлюєте нову версію Emacs, ви можете захотіти налаштувати нові параметри, а також ті параметри, чий сенс або значення за замовчуванням були змінені Щоб зробити це, скористайтеся командою Mx customize-changed-options і вкажіть у мінібуфер номер попередньої версії Emacs Ця команда створить буфер настройки, який покаже вам всі параметри (і групи), чиє визначення змінилося порівняно з вказаною версією

Якщо ви змінили значення параметрів і потім вирішили, що зробили це помилково, то у вас є дві спеціальні команди для того, щоб переглянути попередні зміни Використовуйте команду customize-saved, щоб подивитися на параметри й накреслення, які ви вже зберегли А команду Mx customize-customized використовуйте для того, щоб подивитися на параметри й накреслення, які ви встановили, але ще не стерегли

3123  Пастки

Пастки – це важливий механізм настройки Emacs Пасткою називають лісповскую змінну, що містить список функцій, які викликаються в деякій певній ситуації (Це називається запуском пастки) Окремі функції в цьому списку називаються функціями цієї пастки За рідкісними винятками, відразу після запуску пастки в Emacs порожні, так що всі функції в будь пастці – це явно вміщені туди вами для настройки

Більшість основних режимів запускають на останньому етапі ініціалізації одну або більше пасток режиму Це полегшує настройку поведінки режиму шляхом перекриття локальних змінних, значення яких вже були присвоєні даними режимом Але пастки також використовуються в інших контекстах Наприклад, пастка suspend-hook запускається безпосередньо перед тим, як Emacs призупиняє свою роботу див Розділ 31 [Вихід з Emacs], с 33)

Більшість пасток в Emacs є нормальними пастками Це означає, що запуск такої пастки діє шляхом безумовного виклику всіх її функцій без аргументів Ми намагалися зберегти більшу частину пасток нормальними, щоб ви могли використовувати їх одним і тим же способом Кожна змінна в Emacs, чиє імя закінчується на -hook, є нормальною пасткою

Також є кілька аномальних пасток Імена цих змінних закінчуються на -hooks або -functions, а не на -hook. Аномальність цих пасток полягає в тому, що їх функції викликаються з якоюсь особливістю – можливо, їм передаються аргументи, а може повертається ними значення якось використовується Наприклад, find-file-not-found-hooks (див Розділ 142 [Звернення], с 106) – аномальна пастка, тому що як тільки одна з її функцій повертає відмінне від nil значення, інші функції не викликаються зовсім У документації на кожну аномальну пастку детально описано, в чому полягає її особливість

Для додавання функції до пастці (як нормальної, так і аномальної) рекомендується викликати функцію add-hook Ви можете використовувати будь-яку правильну функцію мови Лісп як функцію пастки, за умови, що вона може обробити правильне число

аргументів (нуль у випадку нормальної пастки) Звичайно, не всяка лісповская функція

корисна в кожній конкретній пастці

Наприклад, ось як встановити пастку для включення режиму Auto Fill при вході в режим Text і в інші режими, засновані на режимі Text:

(add-hook  ’text-mode-hook ’turn-on-auto-fill)

Наступний приклад показує, як використовувати пастки для настройки відступів в програмах на Сі (Люди часто віддають суворе перевагу одному формату в порівнянні з іншим) Приводиться тут функція пастки є анонімним лямбдавираженіем

(setq my-c-style

’((c-comment-only-line-offset 4)

(c-cleanup-list    (scope-operator empty-defun-braces

defun-close-semi))

(c-offsets-alist ((arglist-close c-lineup-arglist) (substatement-open 0)))))

(add-hook  ’c-mode-common-hook

(function (lambda ()

(c-add-style  &quotmy-style&quot my-c-style t))))

Найкраще проектувати функції пасток таким чином, щоб порядок виконання не грав ролі Створювати будь-яку залежність від порядку виклику – напрошуватися на проблеми. Однак, порядок передбачуваний: функції, додані останніми, виконуються першими

Джерело: Річард Столмен, Керівництво по GNU Emacs

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*