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

Звичайна скасування відноситься до всіх змін, зробленим в поточному буфері Ви також можете зробити вибіркову скасування, обмежену поточної областю Щоб зробити це, задайте бажану область, а потім запустіть команду undo з префіксним аргументом (значення не грає ролі): Cu Cx u або Cu C-_ Це скасовує саме остання зміна в області Щоб скасувати більш ранні зміни, повторіть команду undo (префіксний аргумент не потрібно) У режимі Transient Mark, будь-яке використання undo, коли є активна область, виробляє вибіркову скасування вам не потрібно задавати префіксний аргумент

Якщо ви помітили, що буфер був змінений випадково, найпростіший шлях повернутися в первісний стан – це набирати C-_ кілька разів, поки не зникнуть зірочки, що стоять на початку рядка режиму У цей момент всі зроблені вами зміни скасовані Всякий раз, коли команди скасування прибирають зірочки з рядка режиму, це означає, що вміст буфера стало точно таким же, яким воно було, коли файл був останній раз лічений або збережений

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

Не всі буфери записують інформацію для скасування Буфери, чиї імена починаються з пробілу, цього не роблять Вони використовуються для внутрішніх потреб Emacs і його розширень для зберігання тексту, який зазвичай не редагується і не проглядається користувачами

Ви не можете скасувати просте переміщення курсору тільки зміни вмісту буфера зберігають інформацію для скасування Однак, деякі команди руху курсора встановлюють мітку, так що якщо ви час від часу використовуєте ці команди, ви можете повернутися в околиці, за якими ви пересувалися, за допомогою списку позначок (див Розділ 85 [Список позначок], с 66)

Коли інформація скасування для якогось буфера стає занадто великий, Emacs час від часу (під час збірки сміття) скидає найстаріші відомості Ви можете вказати, скільки інформації для скасування необхідно зберігати, за допомогою двох змінних: undo-limit і undo-strong-limit Їх значення виражаються в байтах

Мінлива undo-limit встановлює гнучкий межа: Emacs зберігає дані для скасування достатнього числа команд, щоб залишатися в цих межах і, можливо, вийти за них, але не зберігає дані для більш ранніх команд понад цю межу Її значення за замовчуванням дорівнює 20 000 Мінлива undo-strong-limit встановлює більш жорсткий межа: команда, яка збільшує розмір за цю межу, забувається сама Значення цієї змінної одно за замовчуванням 30000

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

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

45  Файли

Описаних вище команд достатньо для створення і зміни тексту в буфері Emacs більш просунуті команди Emacs лише дозволяють робити це простіше Але для того щоб зберегти будь-який текст, ви повинні помістити його у файл Файли – це іменовані одиниці тексту, які зберігаються операційною системою, щоб ви могли отримати їх пізніше по імені Щоб переглянути або використовувати вміст файлу з будь-якою метою, включаючи редагування за допомогою Emacs, ви повинні задати його імя

Розглянемо файл з імям / usr / rms / fooc. Для того щоб почати редагування цього файлу в Emacs, наберіть

C-x C-f  /usr/rms/fooc hRETi

Тут імя файлу дається як аргумент для команди Cx Cf (find-file) Ця команда використовує для зчитування аргументу мінібуфер, а щоб завершити аргумент, ви набираєте hRET(Див Глава 5 [мінібуфер], с 45)

Emacs підпорядковується цій команді, звертаючись до вказаного файлу: створюючи буфер, копіюючи в нього вміст цього файлу і потім показуючи вам буфер для редагування Якщо ви змінили цей буфер, ви можете зберегти новий текст у файлі, надрукувавши Cx Cs (save-buffer) Це робить зміни постійними шляхом копіювання зміненого вмісту буфера знову в файл / usr / rms / fooc. До цього ваші зміни існують тільки усередині Emacs, а файл fooc не змінюється

Щоб створити файл, треба просто звернутися до нього за допомогою Cx Cf, як якби він вже існував Emacs створить порожній буфер, куди ви можете вставити текст, який хочете занести у файл Реальний файл створюється, коли ви зберігаєте цей буфер за допомогою Cx Cs

Звичайно, про використання файлів можна дізнатися значно більше Див Глава 14 [Фай-

ли], с 105

46  Довідка

Якщо ви забули, що робить якась клавіша, ви можете зясувати це за допомогою знака довідки Ch (або hF1i, Аналога C-h) Наберіть Ch k, а потім імя ключа, про який ви хочете дізнатися наприклад, Ch k Cn розповідає все про те, що робить Cn Ch – це префіксная клавіша Ch k – просто одна з її підкоманд (А саме, команда describekey) Інші підкоманду Ch надають інші види довідки Наберіть Ch двічі, щоб отримати опис всіх можливостей довідки Див Глава 7 [Довідка], с 55

47  Порожні рядки

Тут розглядаються спеціальні команди і прийоми створення і видалення порожніх рядків

Co Вставити після курсору одну або кілька порожніх рядків (open-line)

Cx Co Знищити всі послідовні порожні рядки, крім однієї (delete-blanklines)

Коли ви хочете вставити новий рядок тексту перед вже існуючої, ви можете зробити це, набравши новий рядок тексту і за нею hRETi Однак, може виявитися зручніше бачити те, що ви набираєте, якщо перед цим спершу створити порожній рядок, а потім вставити в неї потрібний текст Це легко зробити, використовуючи клавішу Co (open-line), яка вставляє новий рядок після крапки, але залишає точку перед цією новою рядком Після С-про набирайте текст в новий рядок З-о FOO дає той же результат, що й FOO hRETi, За винятком кінцевої позиції точки

Ви можете створити кілька порожніх рядків, набравши З-о кілька разів, або поставивши їй числовий аргумент, щоб сказати їй, яка кількість рядків необхідно створити Див Розділ 410 [Аргументи], с 42, щоб узать, як це зробити Якщо визначений префікс заповнення, то команда Co, коли ви використовуєте її на початку рядка, вставляє на новій рядку цей префікс заповнення Див Розділ 2153 [Префікс заповнення], с 187

Простий спосіб позбутися від зайвих порожніх рядків – скористатися командою Cx Co (delete-blank-lines) Використання Cx Co серед кількох порожніх рядків видаляє їх все, крім однієї C-x C-o на одиночній порожній рядку видаляє цей рядок Коли точка знаходиться на непорожній рядку, Cx Co видаляє всі порожні рядки після цієї непорожній рядки

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

Якщо ви додаєте занадто багато знаків в один рядок, не перериваючи її натисканням hRETi, То цей рядок буде рости і займають дві (або більше) рядки на екрані в крайній правій позиції кожної із зайнятих рядків, крім останньої, буде розташований знак \. Знак \ каже, що наступна рядок екрана не є окремим рядком у тексті, що це тільки продовження рядка, занадто довгою для даного екрану Продовження також називається перенесенням рядків

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

Замість продовження Emacs може відображати довгі рядки усіченими Це означає, що всі знаки, які не увійшли до ширину екрану або вікна, не відображаються зовсім Вони залишаються в буфері, але тимчасово невидимі В останньому стовпці ставимо знак $, а не \, щоб інформувати про дію усікання

Усічення замість продовження відбувається, коли використовується горизонтальна прокрутка, і, можливо, у всіх вікнах, які не займають повну ширину фрейма (див Глава 16 [Вікна], с 141) Ви можете включити усічення для конкретного буфера, встановивши в ньому змінну truncate-lines не рівної nil (Див Розділ 312 [Змінні], с 343) Зміна значення truncate-lines робить його локальним для поточного буфера до цього моменту діє значення за замовчуванням Початкове значення за замовчуванням – nil Див Розділ 3124 [Локальні змінні], с 350

Див Розділ 117 [Змінні зображення], с 84, про інших змінних, що впливають на спосіб відображення тексту

49  Інформація про позицію курсора

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

M-x what-page

Надрукувати номер сторінки, на якій знаходиться точка, і номер рядка в межах цієї сторінки

M-x what-line

Надрукувати номер рядка, в якій знаходиться точка в буфері

M-x line-number-mode

Переключити режим автоматичного відображення номера поточного рядка

M-= Надрукувати кількість рядків у поточній області (count-lines-region) Див

Глава 8 [Позначка], с 63, щоб дізнатися, що таке область

Cx = Надрукувати код знаки після крапки, знакова положення точки і стовпець точки

(what-cursor-position)

Є дві команди для роботи з номерами рядків Mx what-line підраховує номер поточного рядка і показує його в луна-області Щоб перейти до рядка із заданим номером, використовуйте Mx goto-line вона запитає у вас номер Номери рядків відраховуються від одиниці з початку буфера

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

*

*