Emacs для начинающих

       

Ввод и удаление текста


Чтобы ввести текст, просто установите курсор в нужное место и начинайте печатать. Если создается новый документ, то курсор будет находится в начале.

Если при наборе текста вы дошли до конца строки и продолжаете печатать, то в конце строки появится знак перехода на следующую строку. В качестве такого знака перехода некоторые версии Emacs используют обратный слеш ("\"), но это может быть и какой-либо другой знак (например, стрелка).

Returning to the Spouter-Inn from the Chapel, I found Queequeg ther q\ uit alone; he having left the Chapel before the benediction some time.

Знак перехода не означает реального перехода на следующую строку. Данный знак сигнализирует о том, что редактируемая строка имеет слишком большую длину, и поэтому не помещается в окне (или на экране).

Конечно, можно каждый раз нажимать Enter, чтобы начать печатать с новой строки. Однако, многие текстовые процессоры автоматически вставляют символ перевода каретки при приближении редактируемой строки к правой границе. Для того, чтобы задействовать в Emacs аналогичную опцию нужно нажать M-x и набрать в командной строке auto-fill-mode. Данная команда включает режим "Fill", что отображается в строке состояния словом "Fill"(см. рис. Строка состояния Emacs.).


Строка состояния Emacs.

Если по каким-либо причинам, например при редактировании текстов программ, нужно отключить режим "Fill", повторите вышеописанную процедуру. Т.е. в командной строке (M-x) нужно набрать auto-fill-mode, которая работает в режиме переключателя: если "Fill" был включен, то команда auto-fill-mode его выключит, и наоборот.

Чтобы изменить положение правой границы (или, оперируя терминами Emacs, "fill column"), нажмите C-u, затем введите номер позиции, соответствующей новой ширине текста и нажмите C-x f.

Чтобы удалить символ в позиции курсора нажмите клавишу Delete. Это должно сработать, если нет, то используйте комбинацию C-d. Клавиша Backspace должна функционировать нормально.


ПРИМЕЧАНИЕ:При работе с UNIX-системой с PC через программу-эмулятор терминала клавиша Delete может работать не так, как ожидается. Например, при ее нажатии может удаляться символ слева от курсора. В этом случае использование комбинации C-d является вполне оправданным.

Чтобы удалить фрагмент от курсора до конца строки нажмите C-k (kill-line - неудачное название для команды, которая удаляет не всю строку, а только ее часть).

Другое замечательное свойство Emacs - это возможность переформатирования параграфа. Например, в приведенном ниже фрагменте была удалена часть текста в третьей строке, поэтому данная строка заполнена наполовину:

He made me a present of his embalmed head; took out his enormous tobacco wallet, and groping under the tobacco, drew out some thirty dollars in silver; then spreading them on the table, and mechanically dividing them into two equal portions, pushed one of them towards me, and said it was mine.
Чтобы переформатировать параграф, нужно поместить курсор в какую-либо строку параграфа и нажать комбинацию M-q (fill-paragraph). Того же результата можно достичь, если выбрать в меню Edit пункт Fill. Результат будет выглядеть следующим образом:

He made me a present of his embalmed head; took out his enormous tobacco wallet, and groping under the tobacco, drew out some thirty dollars in silver; then spreading them on the table, and mechanically dividing them into two equal portions, pushed one of them towards me, and said it was mine.
Рассмотренная выше ситуация типична при работе с текстовыми процессорами, но никак не для редакторов. Большинство редакторов были разработаны для программистов, оперирующих строками, а не параграфами. fill-paragraph обрабатывает фрагмент текста, заключенного между двумя пустыми строками. Если переформатированный фрагмент не удовлетворяет требованиям, действие можно отменить нажатием C-_ (команда UNDO).

Иногда удобно добавить в текст информацию из уже существующего файла. Чтобы это реализовать, поместите курсор в нужное место и нажмите C-x C-i. В окне минибуфера появится строка:

Insert file: c:\pathname\
и введите в окне минибуфера имя файла.
Если файл находится не в текущей директории, то используя Backspace сотрите предложенный путь и наберите наименование той директории, где лежит файл.


Содержание раздела