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

Як і всяка програма на Ліспі, Emacs використовує багато лісповскіх змінних для зберігання внутрішніх записів Але більшість змінних, які представляють для вас інтерес, – це ті, що існують заради настройки Emacs (звичайно) не змінює значення цих змінних, замість цього ви самі встановлюєте значення, тим самим змінюючи і керуючи поведінкою деяких команд Emacs Ці змінні називаються користувацькими параметрами Більшість параметрів описані в цьому керівництві і приведені в покажчику змінних (див [Покажчик змінних], с 459)

Прикладом змінної, що є для користувача параметром, служить fillcolumn вона визначає позицію правого краю (як число знаків від лівого краю), яка використовується командами заповнення (див Розділ 215 [Заповнення], с 185)

3121  Перегляд і встановлення змінних

C-h v пров hRETi

Показує значення змінної пров та документацію по ній (describevariable)

M-x set-variable hRETпер hRETзначення hRETi

Змінює значення змінної пер на значення

Щоб подивитися значення окремої змінної, використовується команда Ch v (describe-variable), яка зчитує в мінібуфер імя змінної з можливістю завершення Ця команда друкує і значення змінної, і документацію по ній Наприклад,

C-h v fill-column  hRETi

виведе приблизно наступне:

fill-column’s value  is 75

Documentation:

*Column beyond which automatic line-wrapping  should  happen Automatically  becomes  buffer-local when set  in any fashion

Зірочка на початку опису показує, що ця змінна є призначеним для користувача параметром Ch v не обмежується тільки призначеними для користувача параметрами, вона приймає імя будь-якої змінної

Найбільш зручний спосіб встановити конкретний параметр – виконати Mx set-variable Ця команда зчитує імя змінної за допомогою мінібуфера (з завершенням), а потім зчитує лісповское вираз для нового значення, знову використовуючи мінібуфер Наприклад,

M-x set-variable hRETi  fill-column  hRETi  75 hRETi

встановлює fill-column рівний 75

Дія Mx set-variable обмежено користувацькими параметрами, але ви можете встановити значення будь-якої змінної за допомогою виразу на мові Лісп, використовуючи функцію setq Ось вираз для установки значення змінної fill-column через setq:

(setq fill-column  75)

Щоб виконати вираз, подібне цьому, перейдіть в буфер * scratch *, на-

беріть вираз і потім натисніть Cj Див Розділ 239 [Діалог з Ліспі], с 255

Установка змінних впливає тільки на поточний сеанс Emacs, так само, як і всі Залишився-

ві способи настройки Emacs, за винятком випадків, коли явно сказано інше

3122  Інтерфейс для простої настройки

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

31221  Групи настройки

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

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

/Emacs  group:  ———————————-\

[State]: visible group members  are  all at  standard  settings Customization of  the  One  True Editor

See also  [Manual]

Editing group:  [Go to  Group] Basic  text editing facilities

External group:  [Go to  Group] Interfacing  to  external utilities

ще групи другого рівня

\Emacs  group end ——————————–/

Це означає, що буфер показує вміст групи Emacs Інші групи перерахування

ни тут, оскільки вони є її вмістом Але вони перераховані інакше, без відступів

і тире, тому що їх вміст сюди не включено Кожна група має однорядкове опис у групи Emacs також є рядок [State].

Більшість тексту в буфері налаштування знаходиться в режимі тільки для читання, але звичайно в нього включено кілька редагованих полів, які ви можете змінювати Існують також активні поля це означає, що вони роблять щось, коли ви активізуєте їх Для активізації активного поля або клацніть на ньому кнопкою Mouse-1, або встановіть на ньому точку та натисніть hRETi

Наприклад, фраза [Go to Group], зявляється в групі другого рівня, – активне поле Активізація поля [Go to Group] для групи створює новий буфер настройки, який показує цю групу і її вміст Це поле є чимось на зразок гіперпосилання на іншу групу

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

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

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

‘[+]. Коли показується вміст групи, ця кнопка змінюється на [-]; активізація цієї кнопки ховає вміст групи

Імя кожної групи, параметра або накреслення в цьому буфері має активне поле, в якому написано [Group], [Option] або [Face]. При активізації цього активного поля створюється звичайний буфер настройки, що показує тільки цю групу з її вмістом, або тільки цей параметр або тільки це накреслення Таким способом встановлюють значення

31222  Зміна параметра

Тут наведено приклад того, як виглядають в буфері налаштування користувальницький пара-

метр:

Kill Ring Max: [Hide] 30

[State]: this option is unchanged from  its standard  setting Maximum  length of  kill ring before  oldest elements  are  thrown  away

Текст, наступний за [Hide], – в нашому випадку це 30 – показує поточне значення параметра Якщо замість [Hide] ви бачите [Show], то це означає, що значення приховано буфер настройки спочатку приховує значення, які займають кілька рядків Натисніть на [Show], щоб відкрити значення

Рядок, наступна за імям параметра, показує стан настройки для даного параметра: у вищенаведеному прикладі, вона повідомляє, що ви ще не змінили цей параметр Слово [State] на початку рядка є активним ви можете отримати меню різних операцій, натиснувши на ній Mouse-1 або hRETi Ці операції є суттєвими для настройки змінної

Рядок після рядка [State] показує початок опису даного параметра Якщо документація займає кілька рядків, то ця рядок закінчується кнопкою [More]; ви можете вибрати її для того, щоб подивитися більш повний опис

Для того щоб ввести нове значення для Kill Ring Max, перемістіть точку до значення і відредагуйте його як звичайний текст Наприклад, ви можете набрати Md і ввести потім інше число

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

повідомляючи, що ви змінили значення:

[State]: you have edited the  value  as text, but  not  set  the  option

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

‘[State] і виберіть Set for Current Session.

Коли ви встановите параметр, його стан візуально зміниться:

[State]: you have set  this option, but  not  saved it for future sessions

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

При редагуванні значення поля, яке є імям файлу, каталогу, команди або чим-небудь ще, для чого визначено завершення, ви можете натискати M-hTABi (Widget-complete), щоб справити завершення

Деякі параметри мають невеликий фіксований набір можливих значень Ці параметри не дозволяють вам редагувати значення як текст Замість цього перед значенням зявляється активне поле [Value Menu] ; активізуйте це поле для зміни значення Для логічного значення вкл / викл активне поле показує напис

‘[Toggle], і воно перемикає це значення [Value Menu] і [Toggle] змінюють буфер

зміни набирають чинності, коли ви використовуєте операцію Set for Current Session.

Деякі параметри мають значення зі складною структурою Наприклад, значення змінної load-path є списком каталогів Тут показано, як воно зображується в буфері налаштування:

Load Path:

[INS] [DEL]  [Current dir]: /usr/local/share/emacs/203/site-lisp

[INS] [DEL]  [Current dir]: /usr/local/share/emacs/site-lisp [INS] [DEL]  [Current dir]: /usr/local/share/emacs/203/leim [INS] [DEL]  [Current dir]: /usr/local/share/emacs/203/lisp [INS] [DEL]  [Current dir]: /build/emacs/e20/lisp

[INS] [DEL]  [Current dir]: /build/emacs/e20/lisp/gnus

[INS]

[State]: this item  has been changed outside the  customization buffer List of  directories to  search  for files to  load…

Кожен каталог в цьому списку зображується на окремому рядку, а кожен рядок має кілька редагованих або активних полів

Ви можете змінювати будь-яке з імен каталогів Для того щоб видалити каталог із списку, виберіть кнопку [DEL] в його рядку Для того щоб вставити в список новий каталог, виберіть кнопку [INS] в тій точці, куди ви хочете вставити імя

Ви також можете вибрати поле [Current dir], Щоб переключитися між включенням в дорогу конкретного зазначеного каталогу або значення nil (Nil в шляху пошуку означає спробувати поточний каталог)

Дві спеціальні команди, hTABi  і S-hTABi, Корисні для переміщення по буферу настройки hTAB(Widget-forward) переміщує вперед на наступне активне чи редагує поле S-hTAB(Widget-backward) переміщає в зворотному напрямку на попереднє активне чи редагує поле

Натискаючи hRETi  на редагованому поле, ви також переміщується на наступне поле, аналогічно дії hTABi Причина цього полягає в тому, що люди часто натискають hRETi  по завершенні редагування поля Якщо вам знадобиться вставити в редагує поле переклад рядка, використовуйте Co або Cq Cj

Установка параметра змінює його значення в поточному сеансі Emacs збереження зна-

чення змінює його і для майбутніх сеансів Це працює шляхом запису коду у ваш файл

Джерело: Річард Столмен, Керівництво по 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>

*

*