Текущая позиция курсора в Emacs называется point. Команды перемещения меняют point, а команды редактирования вставляют, удаляют, вырезают, копируют или возвращают текст рядом с ним. Ниже C- означает Control, а M- — Meta, обычно Alt.
Продвинутый Text-Fu · Урок 12
Редактирование в Emacs
Научитесь перемещать point, активировать region и редактировать текст командами kill ring в Emacs.
Перемещение по символам и строкам
Стрелки и другие системные клавиши навигации могут работать, но стандартные команды Emacs доступны и в терминальных, и в графических сеансах:
C-f: на один символ вперёд.C-b: на один символ назад.C-n: к следующей строке.C-p: к предыдущей строке.C-a: к началу строки.C-e: к концу строки.
Какая клавиша Emacs перемещает point к следующей строке?
Перемещение по словам и границам буфера
Команды Meta перемещаются по более крупным единицам:
M-f: вперёд на одно слово.M-b: назад на одно слово.M-<: к началу буфера.M->: к концу буфера.
На многих клавиатурах роль Meta выполняет Alt. Если такое сочетание недоступно, последовательное нажатие Esc и следующей клавиши часто отправляет эквивалентную Meta-команду.
Какая клавиша Emacs перемещает point в конец буфера?
Определение области
Mark — сохранённая позиция буфера. Текст между point и mark называется region. Нажмите C-SPC, в некоторых документах C-space, чтобы выполнить set-mark-command, а затем перемещайте point, расширяя активную область.
В терминале C-SPC может кодироваться как C-@. Подсветка зависит от настроек transient-mark, но point и mark всё равно определяют область.
Какая клавиша начинает определять region, устанавливая mark в позиции point?
Вырезание и копирование области
Emacs хранит вырезанный и скопированный текст в kill ring:
C-w: вырезать активную область, удалив её и добавив в kill ring.M-w: скопировать активную область в kill ring без удаления.C-k: вырезать от point до конца строки; повтор может захватить перевод строки.
Вырезание отличается от обычного удаления тем, что удалённый текст сохраняется для последующего yank.
Какая клавиша копирует активную область в kill ring, не удаляя её?
Вставка из kill ring
Нажмите C-y, чтобы вставить в point последнюю запись kill ring. Сразу после этого M-y заменяет вставленный текст более ранней записью; повторные M-y перебирают записи.
C-y
M-y
Если после C-y выполнить несвязанную команду, у M-y уже не будет того же контекста yank-pop.
Какая клавиша вставляет в point последнюю запись kill ring?
Потренируйтесь в *scratch* или одноразовом файле: перемещайте point, задайте mark, скопируйте одну область, вырежьте другую и вставьте обе обратно. Сохраняйте результат, только если файл стоит оставить.
Урок завершён
Вы завершили Редактирование в Emacs
Теперь вы умеете перемещать и переставлять текст Emacs с помощью point, mark и kill ring.
Перемещаться по символам и строкам командами Control.
Перемещаться по словам и границам буфера командами Meta.
Устанавливать mark через
C-SPC, чтобы определить region.Вырезать через
C-wи копировать черезM-w.Вставлять через
C-yи сразу после этого перебирать записи черезM-y.
Сохраните прогресс
Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.
Создать бесплатный аккаунт