Редагування програм – ЧАСТИНА 6

228  Редагування без розбалансованих дужок

M-(Поставити дужки навколо наступного s-вирази (або s-виразів) (insertparentheses)

M-) пересунути через наступну заслони дужку і зробити новий відступ

(move-past-close-and-reindent)

Команди M-((insert-parentheses) і M-) (move-past-close-and-reindent) створені для полегшення такого виду редагування, при якому дужки завжди залишаються збалансованими M-(вставляє пару дужок, або разом, як в (), або, якщо задано аргумент, навколо наступних кількох s-виразів, і залишає точку після відкритої дужки Точка залишається після відкриває дужки Команда M-) переміщається через заслони дужку, видаляючи будь-який попередній їй відступ і роблячи після неї відступ за допомогою Cj

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

M-(може вставляти перед відкриває дужкою пробіл залежно від синтаксичного класу попереднього знака Встановіть parens-require-spaces в значення nil, якщо ви хочете придушити це

229  Завершення для імен символів

Зазвичай завершення відбувається в мінібуфер Але один з видів завершення доступний у всіх буферах: завершення для імен символів

M-hTABi  (Lisp-complete-symbol) запускає команду, завершальну частково набраний символ перед точкою, використовуючи безліч імен символів, що мають сенс у цьому контексті Всі доповнюючі знаки, що визначаються за часткового імені, вставляються в точці

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

У більшості основних режимів для мов програмування, M-hTABзапускає команду complete-symbol, яка надає два типи завершення Зазвичай вона робить завершення, грунтуючись на таблиці тегів (див Розділ 2213 [Теги], с 224) з числовим аргументом (незалежно від його зачение), вона робить завершення, грунтуючись на іменах, перерахованих в покажчику понять в Info-файлі для цієї мови Тому щоб завершити імя символу, певного у вашій власній програмі, використовуйте M-hTABi без аргументу щоб завершити імя стандартної бібліотечної функції, використовуйте Cu M-hTABi Звичайно, засноване на Info завершення працює, тільки якщо є Info-файл для стандартної бібліотеки функцій вашої мови, і тільки якщо він встановлений у вашій системі

У режимі Emacs-Lisp простір імен для завершення зазвичай складається з нетривіальних символів, присутніх в даний момент в Emacs – тих, що мають визначення функції, значення чи властивості Однак, якщо безпосередньо перед початком часткового символу є відкриває дужка, як завершень розглядаються тільки символи з визначенням функції Команда, яка реалізує це, називається lispcomplete-symbol

У режимі Text і споріднених з ним, M-hTABi  завершує слова, грунтуючись на словнику програми перевірки правопису Див Розділ 134 [Правопис], с 102

2210  Режим Which  Function

Режим Which Function – це другорядний режим, який показує в рядку режиму імя поточної функції по мірі того, як ви пересуваєтеся по буферу

Щоб включити (або вимкнути) режим Which Function, використовуйте команду Mx which-function-mode Це глобальна команда вона застосовується до всіх буферам, як до існуючих, так і до тих, що ще будуть створені Однак, це зачіпає тільки певні основні режими, перераховані в значенні which-func-modes (Якщо це

значення t, то режим Which Function застосовується до всіх основних режимам, які знають, як це підтримується – до основних режимам, що підтримує Imenu)

2211  Команди документації

Коли ви редагуєте код на Ліспі, призначений для запуску в Emacs, ви можете використані команди Ch f (describe-function) і Ch v (describe-variable) для друку документації про функції і змінних, які ви хочете викликати Ці команди використовують мінібуфер для зчитування імені функції або змінної і показують документацію у вікні

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

Для коду на Emacs Lisp ви також можете використовувати режим Eldoc Цей другорядний режим постійно показує в луна-області список аргументів для функції, яка викликається в точці (Іншими словами, він знаходить виклик функції, який містить точку, і показує список аргументів цієї функції) Режим Eldoc застосуємо тільки до режимам Emacs Lisp і Lisp Interaction Для включення і виключення цього режиму використовуйте команду Mx eldoc-mode

Для Сі, Лиспа та інших мов ви можете використовувати Ch Ci (info-lookup-symbol), щоб переглянути документацію Info по якомусь символу Ви задаєте символ в мінібуфер за замовчуванням береться символ, що знаходиться в буфері в точці Де шукати документацію по символах – в яких Info-файлах і яких іменних покажчиках – визначає основний режим Ви можете також використовувати Mx info-lookup-file для знаходження документації для імені файлу

Ви можете прочитати сторінку man для команди операційної системи, бібліотечної функції або системного виклику за допомогою команди Mx manual-entry Для форматування сторінки вона запускає програму man і, якщо дозволяє ваша операційна система, робить це асинхронно, щоб ви могли продовжувати редагування, поки сторінка форматується (MS-DOS і MS-Windows 3 не допускають асинхронних підпроцесів, так що на цих системах ви не можете редагувати, коли Emacs очікує, поки man закінчить роботу) Результат направляється в буфер з імям * Man тема *. Ці буфери використовують особливий основний режим, режим Man, який полегшує прокрутку і перегляд інших сторінок man Для отримання подробиць наберіть Ch m в буфері сторінки man

Для довгих сторінок правильна установка накреслень може зайняти значний час За замовчуванням Emacs використовує в сторінках man накреслення, якщо може показувати різні шрифти або кольору Ви можете вимкнути використання різних накреслень в сторінках man, встановивши змінну Man-fontify-manpage-flag рівний nil

Якщо ви вставите текст сторінки man в буфер Emacs якимось іншим способом, ви можете використовувати команду Mx Man-fontify-manpage, щоб виробити ті ж перетворення, що робить Mx manual-entry

Проект GNU сподівається коли-небудь замінити більшість сторінок man на краще організовані керівництва, які ви можете переглядати за допомогою Info Див Розділ 77 [Інші довідки], с 60 Оскільки цей процес завершений лише частково, читати сторінки man все ще корисно

2212  Журнали змін

Команда Emacs Cx 4 a додає в журнал змін новий запис для файлу, кото-

рий ви редагуєте (add-change-log-entry-other-window)

Файл журналу змін містить хронологічний опис того, чому і коли ви зраджували програму, що складається з послідовності записів, що описують окремі зміни Як правило воно зберігається у файлі з імям ChangeLog в тому ж самому каталозі, в якому знаходиться файл, який ви редагуєте, або в одному з його батьківських каталогів Єдиний файл ChangeLog може записувати зміни для всіх файлів в його каталозі та в усіх його підкаталогах

Запис у журналі змін починається з рядка заголовка, яка містить ваше імя, вашу адресу електронної пошти (одержуваний з змінної user-mail-address) і поточну дату і час Крім цих рядків заголовка, кожен рядок в журналі змін починається з пробілу або табуляції Основна частина запису складається з пунктів, кожен з яких починається з рядка, що починається з пропуску та зірочки Ось приклад двох записів, обидві датовані травнем 1993 року і обидві містять два пункти:

1993-05-25   Richard  Stallman    &ltrms@gnuorg&gt

* manel: Rename  symbols ‘man-*’ to  ‘Man-*’ (manual-entry):  Make  prompt string clearer

* simpleel (blink-matching-paren-distance): Change  default to  12,000

1993-05-24   Richard  Stallman    &ltrms@gnuorg&gt

* vcel (minor-mode-map-alist):  Don’t  use it if it’s void (vc-cancel-version): Doc fix

(Попередні версії Emacs використовували інший формат дати)

Один запис може описувати декілька змін кожна зміна має описуватися в окремому пункті Зазвичай між пунктами повинна бути порожній рядок Коли пункти повязані між собою (частини одного зміни в різних місцях), групуйте їх, не залишаючи між ними порожню рядок Другий запис вище містить два пункти, згрупованих таким способом

Cx 4 a звертається до файлу журналу змін і створює новий запис, якщо тільки останній за часом пункту не датований сьогоднішнім днем ​​і не несе ваше імя Також вона створює новий пункт для поточного файлу Для багатьох мов вона може навіть припустити імя зміненої функції або обєкта

До файлу журналу змін звертаються в режимі Change Log У цьому основному режимі кожна звязка згрупованих пунктів вважається одним абзацом, а кожна запис вважається сторінкою Це полегшує редагування записів Cj і автоматичне заповнення роблять в кожній новій рядку такий же відступ, як у попередній це зручно для введення вмісту записів

Системи управління версіями дають інший спосіб відстеження змін у вашій програмі та ведення журналу змін Див Розділ 14733 [Буфер журналу], с 119

2213  Таблиці тегів

Таблиця тегів – це опис того, як багатофайлова програма розбивається на фай-

ли Вона перераховує імена файлів-компонентів і імена і позиції функцій (або інших

іменованих подедініц) у кожному файлі Обєднання повязаних файлів робить можливим пошук або заміну у всіх файлах за допомогою однієї команди Запис імен функцій і позицій робить можливою команду M-, яка знаходить визначення, відшукуючи відомості про те, в якому файлі воно знаходиться

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

*

*