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

Cc Ct Перемикає засоби автоматичної вставки перекладу рядка і голодного видалення одночасно (c-toggle-auto-hungry-state)

Мінлива c-hungry-delete-key каже, чи включено засіб голодного видалення

22154  Інші команди режиму C

CMh Поміщає мітку в кінці визначення функції, а точку на початку (c-mark function)

Mq Заповнює абзац, обробляючи коментарі Сі і Сі + + (c-fill-paragraph)

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

Cc Ce Запускає препроцесор Сі для тексту в області і показує результат, який включає розкриття всіх викликів макросів (c-macro-expand) Текст буфера, написаний перед областю, також передається препроцесору, так як там можуть бути визначення макросів, але висновок для цієї частини не показується

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

Cc C-\ Вставляє або вирівнює знаки \ в кінцях рядків області (c-backslashregion) Це корисно після написання або редагування визначення макросу Сі

Якщо рядок вже завершується знаком \, ця команда підлаштовує розмір пропуску перед ним В іншому випадку вона вставляє новий \. Однак, останній рядок області розглядається особливо в неї не входить \, а якщо якщо цей знак там стоїть, то він видаляється

M-x cpp-highlight-buffer

Підсвічує частини тексту відповідно з умовними конструкціями препроцесора Ця команда показує ще один буфер з імям * CPP Edit *, який служить в якості графічного меню для вибору способу відображення конкретних видів умовних конструкцій та їх вмісту Після зміни різних установок клацніть на [A] pply these settings (або перейдіть в цей буфер і натисніть a), щоб відповідно оновити подветкой в ​​буфері з режимом C

Cc Cs Показує інформацію про синтаксис поточної вихідної рядки (c-showsyntactic-information) Це та інформація, яка управляє відступом рядки

22155  Коментарі в режимах C

Режим C і споріднені режими використовують кілька змінних для управління форматом коментарів

c-comment-only-line-offset

Додатковий зсув для рядка, яка містить тільки початок коммен-

Тария Це може бути або число, або пара у формі (НЕпривязанийзсув

. привязанийзрушення), де непривязанийзрушення – це розмір зсуву, якої надає полнострочним коментарям, що починається не в нульовому стовпці, а привязанийзрушення – це розмір зсуву, що дається полнострочним коментарям, що починається в нульовому стовпці Просте число як значення еквівалентно (значення 0)

c-comment-start-regexp

Ця локальна для буфера мінлива вказує, як розпізнавати початок коментаря

c-hanging-comment-ender-p

Якщо ця змінна дорівнює nil, c-fill-paragraph залишає завершальну рядок для блоку коментаря на окремому рядку Значення за замовчуванням дорівнює t, що поміщає закриває обмежувач коментаря * / В кінці останнього рядка тексту коментаря

c-hanging-comment-starter-p

Якщо ця змінна дорівнює nil, c-fill-paragraph залишає початківець обмежувач блоку коментаря на окремому рядку Значення за замовчуванням дорівнює t, що поміщає відкриває обмежувач коментаря / * На початку першого рядка тексту коментаря

2216  Режим Fortran

Режим Fortran надає спеціальні команди руху для операторів і підпрограм на Фортране і команди відступів, які розуміють фортрановскіе угоди про вкладеності, номери рядків та оператори продовження Режим Fortran має свій власний режим Auto Fill, який обриває довгі рядки на правильні з точки зору Фортрана рядки продовження

Передбачаються спеціальні команди для коментарів, так як коментарі в Фортране не схожі на коментарі в інших мовах Можливі вбудовані скорочення, які прискорюють набір, коли ви вставляєте ключові слова Фортрана

Використовуйте Mx fortran-mode, щоб переключитися в цей режим Ця команда за-

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

22161  Команди руху

Режим Fortran забезпечує спеціальні команди для руху через підпрограми (функції і процедури) і через оператори Є також команда для установки області навколо підпрограм, зручна для їх знищення і переміщення

CMa Перемістити точку на початок підпрограми (beginning-of-fortransubprogram)

CMe Перемістити точку на кінець підпрограми (end-of-fortran-subprogram)

CMh Поставити крапку на початку підпрограми, а мітку в її кінці (mark-fortransubprogram)

Cc Cn Перейти на початок поточного або наступного оператора (fortran-nextstatement)

Cc Cp Перейти на кінець поточного або попереднього оператора (fortran-previousstatement)

22162  Відступи в Фортране

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

221621  Команди відступу в Фортране

hTABi              Зробити відступ поточного рядка (fortran-indent-line)

Cj Зробити відступ поточного рядка і почати новий рядок з відступом (fortranindent-new-line)

CMj Перервати поточний рядок і підготувати рядок продовження

M-^ Зєднати цей рядок з наступного

CMq Зробити відступ у всіх рядках підпрограми, в якій знаходиться точка

(fortran-indent-subprogram)

Режим Fortran перевизначає hTABтак, щоб він робив новий відступ в поточному рядку для Фортрана (fortran-indent-line) Номери рядків і маркери продовження мають відступ до необхідних стовпців, а тіло оператора отримує незалежний відступ, заснований на його вкладеності в програмі

Ключ Cj запускає команду fortran-indent-new-line, яка заново робить відступ в поточному рядку, а потім створює новий рядок і деалет відступ в ній Ця команда корисна для створення нового відступу в закриваючому операторі циклів do та інших блоків перед початком нового рядка

Ключ CMq запускає fortran-indent-subprogram, команду для створення відступу у всіх рядках фортрановской підпрограми (функції і процедури), cодержащий точку

Ключ CMj запускає fortran-split-line, яка розриває рядок відповідним Фортрана способом У рядку, яка не є коментарем, друга половина стає рядком продовження і має відповідний відступ У рядку коментаря обидві половини стають окремими рядками коментаря

M-^ запускає команду fortran-join-line, яка більш-менш є зверненням fortran-split-line Вона обєднує поточну і попередню рядки відповідним для Фортрана способом

221622  Рядки продовження

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

цей рядок вважається продовженням попередньої Ми називаємо це фіксованим форматом (В GNU Emacs ми завжди остчітиваем стовпці від нуля) Мінлива fortrancontinuation-string вказує, який знак треба поміщати в стовпець 5 Рядок, що починається зі знака табуляції, за яким стоїть будь-яка цифра, крім 0 , також є рядком продовження Цей стиль продовження ми називаємо табульованих форматом

Режим Fortran може робити рядки продовження в обох стилях, але ви повинні вказати, який ви віддаєте перевагу Цим вибором управляє значення прееменной indenttabs-mode: nil означає фіксований формат, а відмінне від nil – табульований Ви можете судити про чинним в даний момент форматі по наявності або відсутності в рядку режиму слова Tab.

Якщо текст на рядку починається з прийнятого в Фортране маркера продовження $ або з непробельний знака в стовпці 5, режим Fortran вважає цей рядок рядком продовження Коли ви робите в рядку продовження відступ за допомогою hTABi, Цей рядок наводиться до поточного стилю продовження Коли ви розбиваєте фортрановскій оператор за допомогою CMj, на новій рядку створюється маркер продовження у відповідності з цим стилем

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

Коли ви включаєте режим Fortran для існуючого файлу, він намагається обчислити відповідний стиль продовження автоматично, виходячи з вмісту цього файлу Вибір визначає перший рядок, яка починається з табуляції або шести прогалин Мінлива fortran-analyze-depth визначає, скільки рядків потрібно розглянути (від початку файлу) якщо жодна їх цих рядків не встановиться у стиль, то він визначається по змінній fortran-tab-mode-default Якщо вона дорівнює nil, то використовується фіксований формат, відмінне від nil значення велить використовувати табульований формат

221623  Номери рядків

Якщо перший непробельний текстом на рядку є число, режим Fortran припускає, що це номер рядка, і переміщує його до стовпців від 0 до 4 (В GNU Emacs стовпці завжди відраховуються від нуля)

Номери рядків з чотирьох і менш цифр зазвичай мають відступ на один пробіл Це управляється змінної fortran-line-number-indent, значення якої є максимальним відступом, який може мати номер рядка Номери рядків отримують такий відступ, щоб вони коректно закінчувалися в четвертому стовпці, якщо при цьому не потрібно відступ більше максимального За замовчуванням значення змінної дорівнює 1

Проста вставка номера рядка достатня для того, щоб відступ у нього відповідав цим правилам Як тільки вставляється кожна цифра, відступ перераховується Щоб вимкнути це властивість, встановіть змінну fortran-electric-line-number в nil Тоді вставка номерів рядків буде схожа на вставку всього іншого

221624  Синтаксичні угоди

Режим Fortran припускає, що ви прямуєте певним угодам, які спрощують завдання розуміння програм на Фортране достатньою мірою, щоб робити в них правильний відступ:

Два вкладених циклу do ніколи не мають спільного оператора continue.

Ключові слова Фортрана, такі як if, else, then, do та інші, написані без внутрішніх прогалин і розривів рядків

Компілятори Фортрана зазвичай ігнорують всі пробільні знаки поза строкових констант, але режим Fortran не може розпізнавати ці ключові слова, якщо вони розірвані Конструкції начебто else if або end do допустимі, але друге слово має бути на тому ж рядку, що і перше, а не на рядку продовження

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

221625  Змінні для управління відступами

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

Тране:

fortran-do-indent

Додатковий відступ в межах кожного рівня оператора do (по умолча-

нию 3)

fortran-if-indent

Додатковий відступ в межах кожного рівня оператора if (за замовчуванням 3) Це ж значення використовується для додаткового відступу кожного рівня оператора Фортрана90 where.

fortran-structure-indent

Додатковий відступ в межах кожного рівня операторів structure,

‘Union або map (за замовчуванням 3)

fortran-continuation-indent

Додатковий відступ для тел рядків продовження (за замовчуванням 5)

fortran-check-all-num-for-matching-do

Якщо це nil, команди відступу вважають, що кожен оператор do кінчається на операторі continue. Тому при обчисленні відступу для оператора, відмінного від continue, вони можуть скоротити час, не виконуючи в цьому місці перевірку закінчення оператора do. Якщо це не nil, то команди відступу для будь-якого пронумерованого оператора повинні перевіряти, не закінчується там do. За замовчуванням значення одно nil.

fortran-blink-matching-if

Якщо це t, створення відступу для оператора endif на мить переміщує курсор до парному оператору if, щоб ви бачили, де він знаходиться За замовчуванням nil

fortran-minimum-statement-indent-fixed

Мінімальний відступ для операторів Фортрана при використанні фіксованого формату для рядків продовження Тіла операторів ніколи не отримують відступ менш цього За умовчанням це 6

fortran-minimum-statement-indent-tab

Мінімальний відступ для операторів Фортрана при використанні табулированного формату рядків продовження Тіла операторів ніколи не отримують відступ менш цього За умовчанням це 8

22163  Коментарі в Фортране

Звичайні команди Emacs для коментарів припускають, що коментарі можуть слідувати за рядком коду У Фортране стандартний синтаксис коментарів вимагає відведення рядки цілком тільки під коментар Тому режим Fortran замінює стандартні команди коментарів у Emacs і визначає деякі нові змінні

Режим Fortran також може обробляти нестандартний синтаксис коментарів, коли коментарі починаються з !’ І можуть слідувати за іншим текстом Так як тільки деякі компілятори Фортрана визнають такий синтаксис, режим Fortran не вставляти такі коментарі, якщо ви не зажадали цього заздалегідь Щоб зробити це, встановіть змінної comment-start значення “!”‘ (Див Розділ 312 [Змінні], с 343)

M- Вирівняти коментар або вставити новий коментар (fortran-commentindent)

C-x Застосовується тільки до нестандартних коментарям !’.

C-c Перетворити всі рядки області в коментарі або (з аргументом) перетворити їх назад в реальний код (fortran-comment-region)

M- в режимі Fortran перевизначається на fortran-comment-indent Як і звичайна команда M-, вона розпізнає будь-який вид існуючих коментарів і відповідно вирівнює його текст якщо існуючого коментаря немає, то коментар вставляється і вирівнюється Але вставка і вирівнювання коментарів у режимі Fortran не такі, як в інших режимах

Коли повинен бути вставлений новий коментар, то, якщо поточна рядок порожня, вставляється повний рядок коментаря У непорожній рядку вставляється нестандартний коментар з !’, Якщо ви сказали, що хочете їх використовувати В іншому випадку в новий рядок перед поточної вставляється повний рядок коментаря

Нестандартні коментарі з !’ Вирівнюються, як коментарі в інших мовах, але полнострочние коментарі вирівнюються інакше У стандартному полнострочном коментарі нову сам обмежувач коментаря повинен завжди зявлятися в нульовому стовпці Що може вирівнюватися, так це текст в межах коментаря Ви можете вибирати з трьох можливих видів вирівнювання, встановлюючи змінну fortrancomment-indent-style в одне з цих значень:

fixed Текст вирівнюється за фіксованим колонки, який є сумою fortran-commenrt-line-column і мінімального відступу оператора Це значення приймається за замовчуванням

Мінімальний відступ операторів – це fortran-minimum-statement-indentfixed для стилю продовження з фіксованим форматом і fortran-minimumstatement-indent-tab для стилю з табульованих форматом

relative Текст вирівнюється так, як якщо б він був рядком коду, але з додаткових-

вими fortran-comment-line-column стовпцями відступу

nil Текст в полнострочних коментарів не переміщається автоматично

Крім того, ви можете визначити знак, який використовується для відступу в межах полнострочних коментарів, встановлюючи змінної fortran-comment-indentchar значення, рівне рядку з одного знака, який ви хочете використовувати

У режимі Fortran вводяться дві змінні, comment-line-start і comment-linestart-skip, які грають для полнострочних коментарів ту ж роль, що і commentstart і comment-start-skip для звичайних, наступних за текстом коментарів Зазвичай вони встановлюються правильно режимом Fortran, так що їх не потрібно змінювати

Звичайна команда Emacs для створення коментаря Cx перевизначена Якщо ви використовуєте коментарі з !’, Ця команда може бути використана з ними Інакше вона марна в режимі Fortran

Команда C-c (Fortran-comment-region) перетворює всі рядки області в коментарі, вставляючи C $ $ $ на початку кожної з рядків З числовим аргументом, вона перетворює область назад в реальний код, видаляючи C $ $ $ з початку кожного рядка в цій галузі Рядок, використовувана для цих коментарів, може управлятися установкою змінної

fortran-comment-region Зауважимо, що тут ми маємо приклад команди і змінної з одним і тим же імям Ці два варіанти використання імені ніколи не конфліктують, так як в Ліспі і в Emacs завжди зрозуміло по контексту, яке з них мається на увазі

22164  Режим Fortran  Auto Fill

Режим Fortran Auto Fill – це другорядний режим, який автоматично розбиває фортрановскіе оператори, коли вони стають Слиш широкими по мірі того, як ви їх вставляєте Розбиття оператора тягне створення рядка продовження з використанням fortran-continuation-string (див Розділ 221622 [Рядки продовження в Фортране], с 240) Розбиття відбувається, коли ви набираєте hSPCi,  hRETi  або hTABi, А також у командах для відступів в Фортране

Mx fortran-auto-fill-mode включає режим Fortran Auto Fill, якщо він був вимкнений, або вимикає, якщо він був включений Ця команда працює так само, як працює Mx auto-fill-mode для звичайного режиму Auto Fill (див Розділ 215 [Заповнення], с 185) Позитивний аргумент включає режим Fortran Auto Fill, а негативний вимикає Ви можете дізнатися, чи діє режим Fortran Auto Fill, по наявності слова Fill в рядку режиму в круглих дужках Режим Fortran Auto Fill – це другорядний режим, вмикати і вимикати в кожному буфері окремо Див Розділ 311 [Другорядні режими], с 341

Режим Fortran Auto Fill розриває рядки на прогалинах або роздільниках, коли рядки стають довшими бажаної ширини (значення fill-column) Роздільниками, на яких режим Fortran Auto Fill може розірвати рядок, є ,,’ , + , – , / , * ,

‘= І ). Розрив відбувається після роздільник, якщо змінна fortran-break-beforedelimiters дорівнює nil Інакше (і за замовчуванням) розрив робиться перед роздільником

За замовчуванням режим Fortran Auto Fill не задіяні Якщо ви хочете, щоб цей засіб був включено постійно, додайте до fortran-mode-hook функцію-пастку, яка виконає (fortran-auto-fill-mode 1) Див Розділ 3123 [Пастки], с 349

22165  Перевірка стовпців в Фортране

Cc Cr На короткий показати лінійку стовпців над поточним рядком (fortrancolumn-ruler)

Cc Cw Тимчасово розділити поточне вікно по горизонталі таким чином, щоб воно стало шириною в 72 шпальти Це може допомогти вам уникнути виходу за ліміт у 72 шпальти, який накладають деякі компілятори Фортрана (fortran-window-create-momentarily)

Команда Cc Cr (fortran-column-ruler) короткочасно показує над поточним рядком лінійку стовпців Лінійка стовпців – це два рядки тексту, які показують вам позиції стовпців, які мають спеціальні значення в Фортран-програмах Квадратні дужки показують кордону стовпців для номерів рядків, а фігурні дужки показують кордону стовпців для тіла оператора Над ними показані номери стовпців

Зауважте, що номери стовпців вважаються від нуля, як завжди в GNU Emacs У звязку з цим номери можуть на одиницю менше, ніж ті, до яких ви звикли але які вказуються ними позиції в рядку стандартні для Фортрана

Текст, який використовується для показу лінійки стовпців, залежить від значення змінної indent-tabs-mode Якщо indent-tabs-mode дорівнює nil, то в якості лінійки стовпців використовується значення змінної fortran-column-ruler-fixed Інакше показується мінлива fortran-column-ruler-tab Змінюючи ці змінні, ви можете змінити вид лінійки стовпців

Для ще більшої допомоги використовуйте команду Cc Cw (fortran-window-create), яка розділяє теущее вікно по горизонталі, роблячи його ширину рівною 72 стовпцях При редагуванні в цьому вікні ви можете безпосередньо бачити, коли ви зробили рядок занадто довгою, щоб вона була правильною з точки зору Фортрана

22166  Скорочення ключових слів Фортрана

Режим Fortran забезпечує безліч вбудованих скорочень для часто зустрічаються ключових слів і оголошень Це ті ж види скорочень, які ви можете визначити самі Щоб використовувати їх, ви повинні включити режим Abbrev Див Глава 24 [Скорочення], с 257

Вбудовані скорочення незвичайні в одному: всі вони починаються з крапки з комою Взагалі ви не можете використовувати крапку з комою в скороченнях, але режим Fortran робить це можливим, змінюючи синтаксис крапки з комою на складову частину слова.

Наприклад, одне вбудоване фортрановское скорочення – це ; з для continue. Якщо ви вставите ; з і потім поставите знаки пунктуації, наприклад пробіл або переклад рядка, то ; з автоматично зміниться на continue, за умови, що включений режим Abbrev

Наберіть ;?’ Або ; C-h, щоб переглянути всі вбудовані скорочення для Фортрана і те, чому вони відповідають

22167  Інші команди режиму Fortran

Cx nd Звужує до поточної підпрограми Фортрана

Режим Fortran перевизначає ключ Cx nd для запуску команди fortran-narrow-tosubprogram, яка служить фортрановскім аналогом звичайного визначення цього ключа Вона звужує буфер до підпрограми, що містить крапку

2217  Режим Asm

Режим Asm – це основний режим для редагування файлів на ассемблерного коді

Він визначає наступні команди:

hTABi              tab-to-tab-stop

Cj Вставляє переклад рядка і робить відступ, використовуючи tab-to-tab-stop

: Вставляє двокрапку і потім видаляє відступ перед міткою, попередньої двокрапки Потім робить tab-to-tab-stop

; Вставляє або вирівнює коментар

Мінлива asm-comment-char визначає, який знак починає коментар в сінтак-

циці асемблера

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

*

*