Перейти к содержанию

Участник:Regency/emacs

Материал из энциклопедии Руниверсалис

Команды emacs

C -кнопка Ctrl

C-c C-f (find-file) - означает нажать кнопку Ctrl и, не отпуская, кнопку c, потом нажать кнопку Ctrl и кнопку f

Основные команды

C-g отмена ввода команды

C-c C-f (find-file) чтение файла в буфер. Загружает в буфер имеющийся файл, или создает буфер с именем нового файла. В последнем случае файл появится на диске только после записи, применения команды C-x C-s (save-buffer).

C-x C-s (save-buffer) запись текущего буфера на диск

C-x s (save-some-buffers) сохранение всех буферов на диск

Команды работы с буфером

C-x b (switch-to-buffer) - переключение в буфер. Запрашивает имя, если введенному имени нет соответствующего буфера, создает новый буфер с этим именем.

C-x C-b (list-buffers) - открывает окно с буферами, показывает для каждого имя, размер в байтах, основной режим буфера, и соответствующий буферу файл.

C-x k (kill-buffer) - запрашивает название буфера и удаляет структуру его данных из emacs, (закрывает). Если буфер был изменен, то запрашивает сохранение. Если у буфера нет файла, то закрывает его не запрашивая сохранение.

C-x C-q (read-only-mode) - переводит буфер в режим только-чтения или записи, в зависимости от того в какмо режиме он был до этого.

Выделение текста

Для выделения текста используется инструмент Метки (англ. Mark). Инструмент метки позволяет при помощи клавиатуры осуществлять выделение текста. Чтобы поставить метку в том месте где находится курсор используют комбинацию C-SPC (set-mark-command). Если переместить курсор, метка останется на прежнем месте. Метка невидимая. Областью (англ. Region) называют текст расположенный между меткой и курсором. Эти действия эквивалентны выделению с помощью мыши. Если мы используем мышь, нажав левую кнопку и не отпуская выделив нужную область текста, то то место в тексте, где мы нажали на левую кнопку мыши будет местом размещения Метки, а то место в тексте где мы отпустили кнопку мыши, текущее положение курсора. После того как мы выделили область, она будет подсвеченной в тексте. Чтобы убрать подсветку используют команду C-g. Однако эта команда не убирает метку из текста, соответственно выделенную область. Чтобы вернуть подсветку текста между курсором и меткой используется команда C-x C-x (exchange-point-and-mark), одновременно эта команда меняет местами метку и положение курсора. Это удобно, если необходимо увеличить область выделения с другого конца перемещая курсор, повторное использование этой команды опять меняет положение метки и курсора, и можно расширять выделение с противоположного конца.

После того как выбрана Область с ней можно производить различные действия.

C-w (kill-region) - Вырезать область (потом ее можно вставить в другом месте)

M-w (kill-ring-save) - Скопировать область, то есть оставить область там геде она есть и вставить в другом месте.

C-x C-i (indent-rigidly) - Создать или удалить абзацный отступ. После использование это команды отступ создают с помощью кнопок перемщения курсора - кнопок со стрелками. Командой C-u 3 C-x C-i можно сразу создать абзацный отступ равный трем символам.

C-x C-l (downcase-region) - Преобразовать всю область в строчные буквы.

C-x C-u (upcase-region) - Преобразовать всю область в заглавные буквы.

M-q (fill-region) - Выровнять область справа

Редактирование текста

C-w (kill-region) - Вырезать

M-w (kill-ring-save) - Скопировать

C-y (yank) - Вставить

C-x h (mark-whole-buffer) - Выделить все.

"Буфер обмена" или Список удалений (Kill Ring)

То что обычно называется "буфером обмена", как временное запоминание скопированного и вырезанного текста, в emacs называется Список удалений - Kill Ring. Команда C-y (yank) вставляет в текст последнее что было помещено в Список удалений. Однако редактор сохраняет память о 120 последних удалений. Команда M-y (yank-pop) запрашивает, какое из этого списка 120 удалений вставить в текст. Если вставить текст из Списка удалений, то он не исчезнет из этого списка.

Если ввести команду C-y (yank), то будет введен последний удаленный или скопированный текст, если сразу после этого ввести команду M-y (yank-pop) вместо последнего удаленного или скопированного текста, будет введен следующий находящийся в Списке удалений текст. Последующие нажатия сочетания клавиш M-y будет на тоже место помещать следующий находящийся в Списке удалений текст. И так можно перебрать все 120 находящихся в Списке удалений удаленных элементов, после этого все начинается с начала. Этот последовательный переход по Списку удалений происходит только если команда M-y применяется сразу после ввода команды C-y. Если после команды C-y ввести команду C-g - отмена ввода команды, или любую другую команду или любое другое действие (ввод символа, перемещение по тексту), то команда M-y будет вести себя так как это было описано в начале этого раздела - запрашивать то, какой из элементов Списка удалений ввести.

Для того, чтобы можно было увидеть что входит в список удалений можно установить дополнение к emacs - browse-kill-ring.

Команда C-y (yank) может иметь числовой аргумент например команда C-u 3 C-y то же самое, что и команда C-y M-y M-y.

Копирование в один и тот же последний элемент Списка удалений (когда копирование не создает еще один элемент Списка удалений а добавляется уже к имеющемуся) осуществляется командой C-M-w (append-next-kill). Если вы произвели копирование или вырезали текст в Список удалений, то после этого перед копированием или вырезанием следующего текста следует ввести команду C-M-w (append-next-kill) перед командой C-w (kill-region) - Вырезать или M-w (kill-ring-save) - Скопировать. Тогда после ввода команды "вставить" - C-y (yank), будет вставлен текст и первого и второго копирования. Команда C-M-w (append-next-kill) также работает и с командой Скопировать M-w.

Использование буфера вместо Списка удалений

Если приходится часто прибегать к копированию или вырезанию текста, если эти действия связаны с накоплению большого объема скопированной информации, необходимостью ее просмотра и обработки перед тем как вставить, если действия по копированию или вырезанию текста растянуты по времени, удобно использовать команду Добавить в буфер. Для этого, после того как текст был выделен, необходимо ввести команду M-x append-to-buffer-with-newline. После введения этой команды система запросит имя для буфера в который будет осуществлено копирование или вырезание выделенного текста. Исползуя каждый раз, когда вы копируете или вырезаете текст эту команду вы добавляете в определенный буфер текст. Если необходимо весь текст этого буфера вставить - вводится команда M-x insert-buffer.