Основні команди редагування – ЧАСТИНА 1

Тут ми розповідаємо основи про те, як ввести текст, зробити зміни і записати текст у файл Якщо ці відомості нові для вас, ви можете вивчити це більш легким способом, запустивши самовчитель по Emacs Щоб зробити так, запустіть Emacs і наберіть Control-h t (help-with-tutorial)

Щоб очистити екран і перемалювати зображення, надрукуйте Cl (recenter)

41  Вставка тексту

Щоб вставити друковані знаки в редагований вами текст, досить просто набрати їх Таким чином, вводяться вами знаки вставляються в буфер в позиції курсору (тобто в точці див Розділ 11 [Точка], с 23) Курсор рухається вперед, і весь текст після курсору теж зсувається вперед Якщо в буфері був текст FOOBAR, і курсор стояв перед B, то якщо ви наберете XX, ви отримаєте FOOXXBAR c курсором, залишилися перед

‘B’

Щоб видалити текст, який ви тільки що вставили, використовуйте hDELi hDELвидаляє знак перед курсором (а не знак під курсором цей знак стоїть після курсора) Курсор і всі знаки, які стоять після нього, зсуваються тому Тому, якщо ви набрали друковані знаки і потім набираєте hDELi, Набране скасовується

Щоб закінчити рядок і почати набирати нову, натиснітьhRETi Це вставить в буфер знак переходу на новий рядок Якщо точка знаходиться в середині рядка, hRETрозбиває цей рядок Набір hDELi, Коли курсор знаходиться на початку рядка, видаляє попередній символ нового рядка, поєднуючи таким чином цю і попередню рядка

Emacs може розбивати рядки автоматично, коли вони стають занадто довгими, якщо ви дозволите спеціальний другорядний режим, званий режимом Auto Fill Див Розділ 215 [Заповнення], с 185, для інформації про використання режиму Auto Fill

Якщо ви віддаєте перевагу, щоб знаки тексту заміщали (перезаписували) існуючий текст, а не зрушували його вправо, ви можете включити другорядний режим Overwrite Див Розділ 311 [Другорядні режими], с 341

Безпосередня вставка працює для друкованих знаків і hSPCi, Але інші знаки діють як команди редагування і не вставляють самі себе Якщо вам потрібно вставити керуючий знак або знак, код якого перевищує вісімкове 200, ви повинні скасувати їх особливий сенс, набравши перед ними Control-q (quoted-insert) (Назва цього знака зазвичай записується як Cq для стислості) Існує два способи використання Cq:

Cq, за яким слід будь неграфіческій знак (навіть Cg), вставляє цей знак

Cq, за яким йде послідовність вісімковий цифр, вставляє знак із заданим знаковим кодом Ви можете використовувати будь-яке число вісімковий цифр будь-який знак, який не є цифрою, обриває послідовність Якщо завершальний знак – це hRETi, Він служить тільки для завершення послідовності будь-який інший нецифровий знак сам використовується в якості введення після завершення послідовності (Використання вісімковий послідовностей заборонено в звичайному недвійковий режимі Overwrite, щоб дати вам зручний спосіб вставити цифру замість заміщення їй)

Коли включена підтримка багатобайтові знаків, вісімковий коди від 0200 до 0377 не є вірними знаками якщо ви задаєте код з цього проміжку, Cq вважає, що ви збираєтеся використовувати якийсь з наборів знаків ISO Latin-n, І перетворює заданий код до відповідного коду знаків Emacs Див Розділ 182 [Включення багатобайтові

знаків], с 161 Який саме набір знаків ISO Latin слід використовувати, визначається обраною вами мовним середовищем (див Розділ 183 [Мовні середовища], с 162)

Щоб використовувати замість вісімковий цифр десяткові або шістнадцяткові, встановіть змінну read-quoted-char-radix рівний 10 або 16 Якщо основа більше десяти, деякі букви, починаючи з a, служать частиною знакового коду, так само, як і цифри

Числовий аргумент для Cq вказує, скільки копій знаків з скасованим особливим змістом необхідно вставити (див Розділ 410 [Аргументи], с 42)

Інформація для налаштування: hDELi  в більшості режимів запускає команду deletebackward-charhRETi  запускає команду newline, а самовставляющіеся друковані знаки запускають команду self-insert, яка вставляє той знак, який був набраний при її виклику Деякі основні режими перепрівязивают hDELдо інших команд

42  Зміна положення точки

Щоб зробити щось більше, ніж просто вставка знаків, ви повинні знати, як рухається точка (див Розділ 11 [Точка], с 23) Найпростіший спосіб перемістити точку – скористатися курсорними стрілками або клацнути лівою кнопкою миші в тому місці, куди ви хочете пересунути точку

Є також Controlі Meta-знаки для переміщення курсору Деякі з них еквівалентні курсорну стрільцям (вони були придумані в ті дні, коли у терміналів ще не було курсорних стрілок, їх можна використовувати на таких терміналах) Інші роблять більш складні речі

Ca пересунути на початок рядка (beginning-of-line)

Ce пересунути в кінець рядка (end-of-line)

Cf Зрушитися на один знак вперед (forward-char) Cb Зрушитися на один знак тому (backward-char) Mf Зрушитися на одне слово вперед (forward-word)

Mb Зрушитися на одне слово назад (backward-word)

Cn Зрушитися вертикально вниз на один рядок (next-line) Ця команда намагається залишити горизонтальну позицію незмінною, щоб якщо спочатку ви перебували в середині одного рядка, то наприкінці опинилися б у середині наступного У разі, якщо ви знаходитесь на останньому рядку тексту, Cn створює новий рядок і пересувається на неї

Cp Зрушитися вертикально вгору на один рядок (previous-line)

Mr Зрушити точку до лівого краю на рядок в середині вікна (move-to-windowline) Текст при цьому не переміщається по екрану

Числовий аргумент говорить, на якому рядку екрана помістити точку Він відраховує екранні рядки від верху вікна (нуль для самої верхньої) Негативний аргумент відраховує рядки знизу (1 для нижньої рядка)

M-< Перейти на початок буфера (beginning-of-buffer). При аргументі, рівному n, Рухає на n/ 10 від початку Див Розділ 410 [Аргументи], с 42, для більш докладної інформації про числові аргументах

M-> Перейти в кінець буфера (end-of-buffer)

M-x goto-char

Зчитує число n і зрушує точку до позиції n в буфері Позиція 1 – це початок буфера

M-x goto-line

Зчитує число n і зрушує точку до рядка з номером n Рядок 1 – це початок буфера

Cx Cn Велит використовувати поточний стовпець, в якому знаходиться точка, в якості Полупостоянние цільового стовпця для Cn і Cp (set-goal-column) Надалі ці команди завжди переходять на цей стовпець у кожному рядку, до якої ви пересуваєтеся, або якомога ближче до нього при даному вмісті рядка Цей цільової стовпець залишається в силі, поки його не скасують

C-u C-x C-n

Скасувати цільової стовпець Надалі Cn і Cp знову, як звичайно, катував-

ються уникнути зміни горизонтальної позиції

Якщо ви встановите змінну track-eol не рівної nil, то якщо точка знаходиться до кінці рядка, Cn і Cp пересувають в кінець іншого рядка Зазвичай track-eol дорівнює nil Див Розділ 312 [Змінні], с 343, щоб дізнатися, як встановити змінні начебто track-eol

Зазвичай Cn, викликана на останньому рядку буфера, додає до буферу новий рядок Якщо змінна next-line-add-newlines дорівнює nil, то Cn замість цього видає помилку (як Cp на першому рядку)

43  Стирання тексту

hDELi              Видалити знак перед точкою (delete-backward-char)

Cd Видалити знак після крапки (delete-char)

Ck Знищити все до кінця рядка (kill-line)

Md Знищити всі знаки вперед до кінця наступного слова (kill-word)

M-hDELi         Знищити всі знаки у зворотному напрямку аж до початку попереднього слова (backward-kill-word)

Ви вже знаєте про клавішіhDELi, Яка видаляє знак перед точкою (тобто перед курсором) Інший ключ, Control-d (Cd для стислості), видаляє знак після крапки (той знак, на якому курсор) Це зрушує решта тексту на рядку вліво Якщо ви натиснете Cd в кінці рядка, то цей рядок і наступна за нею зєднуються

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

Див Розділ 91 [Знищення], с 69, для отримання інформації про більш гнучких спосо-

бах знищення тексту

44  Скасування зроблених змін

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

Cx u Скасувати одну групу змін – зазвичай одну варту команду (undo)

C-_ Те ж саме

Cu Cx u Скасувати одну групу змін в області

Ви робите скасування за допомогою команди Cx u або C-_ Коли ви вперше даєте цю команду, вона скасовує останнє зроблене зміна Точка повертається до того місця, де вона була до команди, яка зробила зміна

Послідовне повторення C-_ або Cx u скасовує всі більш ранні зміни, аж до межі доступної інформації скасування Якщо всі записані зміни вже були скасовані, команда скасування друкує повідомлення про помилку і нічого не робить

Будь-яка команда, відмінна від команди скасування, перериває послідовність команд скасування Починаючи з цього моменту попередні команди скасування розглядаються як прості зміни, які можуть бути скасовані Таким чином, щоб повернути скасовані вами зміни, наберіть Cf або будь-яку іншу команду, яка не заподіюючи шкоди перерве послідовність скасувань, а потім знову набирайте команди скасування

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

*

*