Команди для природних мов – ЧАСТИНА 4

У режимі TexthTABi  запускає функцію indent-relative (див Глава 20 [Відступи], с 177), щоб вам було зручно робити відступ як в попередньому рядку Коли в попередньому рядку немає відступу, indent-relative запускає tab-to-tab-stop, яка використовує встановлювані вами позиції табуляції (див Розділ 202 [Позиції табуляції], с 178)

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

Якщо ви робите відступ у першому рядку абзацу, вам потрібно використовувати режим Paragraph-Indent Text замість режиму Text У цьому режимі вам не обовязково ставити між абзацами порожні рядки, тому що відступу в першому рядку достатньо для початку нового абзацу однак, абзаци, в яких кожен рядок має відступ, не підтримуються Щоб увійти в цей режим, використовуйте Mx paragraph-indent-text-mode

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

Вхід в режим Text запускає пастку text-mode-hook Інші основні режими, споріднені з режимом Text, також запускають цю пастку і потім свої пастки до них відносяться режим Paragraph-Indent Text, режим Nroff, режим TEX, режим Outline і режим

Mail Функції пастки text-mode-hook можуть перевірити значення major-mode, щоб

дізнатися, в якій з цих режимів ви насправді входите Див Розділ 3123 [Пастки],

с 349

218  Режим Outline

Режим Outline – це основний режим, дуже схожий на режим Text, але призначений для редагування структурованого тексту Він дозволяє вам робити частини тексту тимчасово невидимими, так що ви можете бачити просто переглянути структуру тексту Наберіть Mx outline-mode, щоб включити режим Outline в поточному буфері

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

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

Другорядний режим Outline надає ті ж команди, що й основний режим Outline, але ви можете використовувати його спільно з іншими основними режимами Щоб включити другорядний режим Outline в поточному буфері, наберіть Mx outline-minor-mode Ви також можете вказати це в тексті файлу за допомогою локальної змінної у формі mode: outline-minor (див Розділ 3125 [Змінні файлу], с 351)

Основний режим, режим Outline, надає особливі привязки ключів на префіксі Cc Другорядний режим Outline надає схожі привязки з Cc @ як префікса це потрібно, щоб зменшити ризик конфлікту зі спеціальними командами основного режиму (Використовуваний префікс управляється змінної outline-minor-modeprefix)

При вході в режим Outline запускається пастка text-mode-hook відразу після пастки

outline-mode-hook (див Розділ 3123 [Пастки], с 349)

2181  Формат схем тексту

Режим Outline припускає, що рядки в буфері діляться на два типи: рядки заголовка і рядки тіла Рядки заголовка являє тему в схемі тексту Вони починаються з одного або більше зірочок число зірочок визначає глибину заголовка в структурі тексту Таким чином, рядок заголовка з однією зірочкою – це основна тема всі рядки заголовка з двома зірочками між цим рядком і наступної рядком заголовка з однією зірочкою є її підтемами і так далі Будь рядок, яка не є рядком заголовка, – це рядок тіла Рядки тіла відносяться до попередньої рядку заголовка Ось приклад:

* Їжа

Це тіло, яке говорить щось про їжу

** Смачна їжа

Це тіло заголовка другого рівня

** Противна їжа Тут теж могло б бути тіло на декількох рядках

*** Громадське харчування

* Притулок

Ще одна тема першого рівня зі своїм рядком заголовка

Рядок заголовка разом з усіма подальшими рядками тіла в сукупності називаються входженням Рядок заголовка разом з усіма наступними більш глибокими заголовками і їх рядками тіла називається піддерево

Ви можете налаштувати критерій для розрізнення рядків заголовка, встановивши змінну outline-regexp Будь рядок, чий початок містить збіг з цим регулярним виразом, розглядається як рядок заголовка Відповідності, які починаються з середини рядка (не на початку), не розглядаються Довжина тексту відповідності визначає рівень заголовка: більш довге відповідність створює глибше вкладений рівень Наприклад, якщо програма форматування має команди @ chapter,

‘@ Section і @ subsection для поділу документа на глави та розділи, ви можете зробити ці рядки сприймаються як рядків заголовка, встановивши outline-regexp рівний “@ chap \ \ | @ \ \ (sub \ \) * section ‘. Зверніть увагу на хитрість: слова chapter і section мають рівну довжину, але визначивши регулярний вираз як збігалася тільки з chap, ми гарантуємо, що довжина тексту, відповідного заголовку глави, буде коротшим таким чином, режим Outline буде знати, що розділи містяться в главах Це працює, якщо жодна інша команда не починається з @ chap.

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

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

2182  Команди переміщення по структурі

Режим Outline надає особливі команди переміщення, які пересувають на-

зад і вперед по рядках заголовків

Cc Cn Пересунути точку до наступної видимої рядку заголовка (outline-nextvisible-heading)

Cc Cp Пересунути точку до попередньої видимої рядку заголовка (outlineprevious-visible-heading)

Cc Cf Пересунути точку до наступної видимої рядку заголовка того ж рівня, що й рядок, на якій знаходиться точка (outline-forward-same-level)

Cc Cb Пересунути точку до попередньої видимої рядку заголовка цього ж рівня

(outline-backward-same-level)

Cc Cu Пересунути точку назад до видимої рядку заголовка нижчого рівня

(outline-up-heading)

Cc Cn (outline-next-visible-heading) переходить вниз на наступний рядок заголовка Cc Cp (outline-previous-visible-heading) пересуває аналогічно, але тому Обидві приймають числовий аргумент як лічильник повторів Імена цих команд підкреслюють, що невидимі заголовки пропускаються, але це насправді не спеціальна особливість Всі команди редагування, які переглядають рядки, ігнорують невидимі рядки автоматично

Більш потужні команди руху розуміють рівневу структуру заголовків Cc Cf (outline-forward-same-level) і Cc Cb (outline-backward-same-level) пересувають від одного рядка заголовка до іншої видимої рядку заголовка тієї ж самої глибини в структурі Cc Cu (outline-up-heading) пересуває назад до іншого заголовку, який має меншу глибину вкладеності

2183  Команди управління видимістю структури

Щоб зробити рядки видимими або невидимими, використовуються інші спеціальні команди режиму Outline Усі їхні імена починаються або з hide, або з show Більшість з них складають пари протилежностей Вони не можуть бути скасовані замість цього ви можете провести скасування безвідносно до видимості тексту Зміна видимості рядків просто не записується механізмом скасування

Cc Ct Зробити всі рядки тіла в буфері невидимими (hide-body)

Cc Ca Зробити всі рядки в буфері видимими (show-all)

Cc Cd Зробити все під цим заголовком невидимим, але не сам цей заголовок (hidesubtree)

Cc Cs Зробити все під цим заголовком видимим, включаючи тіло, підзаголовки і їх тіла (show-subtree)

Cc Cl Зробити тіло цього рядка заголовка і всі його підзаголовки невидимими (hideleaves)

Cc Ck Зробити все підзаголовки цього заголовка видимими на всіх рівнях (showbranches)

Cc Ci Зробити безпосередні підзаголовки (на один рівень вниз) цього заголовка видимими (show-children)

Cc Cc Зробити тіло цього заголовка невидимим (hide-entry)

Cc Ce Зробити тіло цього заголовка видимим (show-entry)

C-c C-q Приховати все, крім n верхніх рівнів рядків заголовків (hide-sublevels)

Cc Co Приховати все, крім заголовка або тіла, в якому знаходиться точка, і заголовки-

ков, провідних звідси до верхнього рівня структури (hide-other)

Дві команди, які строго протилежні, – це Cc Cc (hide-entry) і Cc Ce (show-entry) Вони застосовуються, коли точка розташована на заголовку, і відносяться тільки до рядків тіла цього заголовка Підтеми і їхні тіла не зачіпаються

Дві потужніші протилежності – це Cc Cd (hide-subtree) і Cc Cs (showsubtree) Обидві передбачають використання, коли точка знаходиться на заголовку, і обидві застосовуються до всіх рядків поддерева цього заголовка: його тілу, всім його підзаголовкам, як прямим, так і непрямим, і всім їх тілах Іншими словами, поддерево містить все, що слідує за цим заголовком, аж до (але не включаючи) наступного заголовка того ж самого або вищого рангу

Проміжний стан між видимим і невидимим піддерево – це коли видимі всі підзаголовки, але не видимо жодне тіло Для здійснення цього є дві команди, в залежності від того, чи хочете ви приховати тіла або зробити видимими підзаголовки Це Cc Cl (hide-leaves) і Cc Ck (show-branches)

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

*

*