Работа с редактором Emacs
В инструкции приведены основы работы с редактором Emacs в Git.
Для запуска GNU Emacs 27 просто наберите имя программы: emacs.
Приостановить работу Emacs или свернуть иконку при работе в X — C-z.
Выйти из Emacs — C-x C-c.
Команда
Действие
C-x C-f
Открыть файл в Emacs
C-x C-s
Сохранить файл обратно на диск
C-x s
Сохранить все файлы
C-x i
Вставить содержимое другого файла в текущий буфер
C-x C-v
Открыть нужный вам файл вместо текущего
C-x C-w
Сохранить буфер в указанном файле
C-x C-q
Переключить состояние буфера в режим «Только для чтения»
Нажмите C-h или F1 и следуйте инструкциям. Если вы в первый раз работаете
с Emacs, то наберите C-u C-h t Russian RET для вызова учебника.
Команда
Действие
C-x 1
Скрыть окно справки
C-M-v
Прокрутить окно справки
C-h a
Apropos: показать команды, соответствующие строке
C-h k
Показать имя функции, которая запускается клавишей
C-h f
Получить информацию о функции
C-h m
Получить информацию о режиме
Команда
Действие
C-g
Прервать частично набранную или исполняемую команду
M-x
Восстановить файл, потерянный при крахе системы
C-x u, C-_ или C-/
Отменить нежелательные изменения
M-x revert-buffer
Восстановить буфер в первоначальное состояние
C-1
Перерисовать заполненный мусором экран
Команда
Действие
C-s
Поиск вперёд
C-r
Поиск назад
C-M-s
Поиск по регулярному выражению вперёд
C-M-r
Поиск по регулярному выражению назад
M-p
Выбрать предыдущую строку поиска
M-n
Выбрать следующую строку поиска
RET
Прекратить наращиваемый поиск
DEL
Отменить эффект ввода последнего символа
C-g
Прервать текущий поиск
C-s или C-r,если поиск ещё идёт — C-g: отменит только невыполненную часть
Повтор поиска в любом направлении
Команда
Действие
M-%
Интерактивная замена текстовой строки
M-x query-replace-regexp
Использование повторяющихся выражений
SPC
В режиме интерактивной замены:заменить соответствие, перейти к следующему
,
Заменить соответствие без замены
DEL
Пропустить соответствие без замены
!
Заменить все оставшиеся соответствия
RET
Выйти из режима «Замена с запросом»
C-r
Войти в режим рекурсивного редактирования. Для выхода используется C-M-c
Команда
Действие
TAB
Сделать отступ для текущей строки (в зависимости от режима)
C-M-\
Сделать отступ для области (в зависимости от режима)
C-M-q
Сделать отступ для выражения (в зависимости от режима)
C-x TAB
Сделать отступ к заданной arg колонке
C-o
Вставить новую строку после курсора
C-M-o
Сдвинуть остаток строки вертикально вниз
C-x C-o
Удалить пустые строки вокруг курсора
M-\
Удалить пустое пространство вокруг курсора
M-SPC
Поместить только один пробел в позиции курсора
M-q
Отформатировать текущий параграф
C-x f
Установить столбец заполнения
C-x /
Установить префикс заполнения каждой строки
M-g
Установить начертание (face)
Команда
Действие
C-t
Поменять местами символы
M-t
Поменять местами слова
C-x C-t
Поменять местами строки
C-M-t
Поменять местами выражения
Команда
Действие
M-$
Проверить текущее слово
M-x ispell-region
Проверить все слова в области
M-x ispell-buffer
Проверить весь буфер
Команда
Действие
M-.
Найти определение тега
C-u M-.
Найти следующее вхождение тега
M-x visit-tags-table
Использовать новый файл с тегами
M-x tags-search
Найти по шаблону по всей таблице тегов
M-x tags-query-replace
Выполнить query-replace над всеми файлами
M-,
Продолжить поиск или поиск-замену тега
Команда
Действие
M-!
Выполнить команду командного процессора
M-|
Выполнить команду командного процессора над областью
C-u M-|
Пропустить содержимое области через команду командного процессора
M-x shell
Запустить командный процессор в окне *shell*
Команда
Действие
C-x r r
Скопировать прямоугольную области в регистр
C-x r k
Удалить прямоугольную область
C-x r y
Вставить последнюю уничтожённую прямоугольную область
C-x r o
Открыть прямоугольную область, сдвигая текст вправо
C-x r c
Очистить прямоугольную область
C-x r t
Предварить каждую строку строкой текста
Команда
Действие
C-x a g
Добавить глобальное сокращение
C-x a l
Добавить локально для режима сокращение
C-x a i g
Добавить глобальное значение для этого сокращения
C-x a i l
Добавить специфическое значение для режима значения этого сокращения
C-x a e
Явно вставить значение для сокращения
M-/
Динамически дополнить предыдущее слово
Выражение
Действие
. (dot)
Любой одиночный символ за исключением символа новой строки
*
Ноль или более повторений
+
Одно или более повторений
?
Ноль или одно повторение
\c
Экранировать специальный символ c
\|
Выбор между альтернативами («или»)
\( … \)
Группировка
\n
Текст в n-й группе
\b
Граница слова
\B
Не граница слова
$
Строка
\< \>
Слово
\' \'
Буфер
[ … ]
Явный набор
\w \W
Символ-буква
\sc \Sc
Символ с синтаксисом c
Международные наборы символов
Команда
Действие
C-x RET l
Выбрать язык
M-x list-input-methods
Показать все возможные методы ввода
C-\
Разрешить или запретить метод ввода
C-x RET c
Установить систему кодирования для следующей команды
M-x list-coding-systems
Показать список всех систем кодирования
M-x prefer-coding-system
Выбрать предпочтительную систему кодирования
Команда
Действие
C-x r s
Сохранить область в регистре
C-x r i
Вставить содержимое регистра в буфер
C-x r SPC
Сохранить положение курсора в регистре
C-x r j
Перейти к положению курсора, сохранённому в регистре
Макрос
Действие
C-x (
Начать определение клавиатурного макроса
C-x )
Закончить определение клавиатурного макроса
C-x e
Выполнить последний определённый макрос
C-u C-x (
Дополнить последний определённый макрос
M-x name-last-kbd-macro
Задать имя для последнего определённого макроса
M-x insert-kbd-macro
Вставить в буфер определение макроса на языке Lisp
Команды, связанные с Emacs Lisp
Команда
Действие
C-x C-e
Вычислить выражение перед курсором
C-M-x
Вычислить текущую функцию defun
M-x eval-region
Вычислить область как выражение
M-:
Считать и вычислить выражение из минибуфера
M-x customize
Загрузить из стандартного системного каталога
M-x customize — настроить переменные и оформление (faces).
Создание глобальных привязок клавиш (ключей) на Emacs Lisp (примеры):
(global-set-key "\C-cg 'goto-line)(global-set-key "\M-# 'querty-replace-regexp)
(defun <command-name> (<args>)"<documentation> (interactive "<>template")<body>)
Основы работы с клавиатурой
Сочетание клавиш
Команда
Действие
C-p
previous-line
Вверх на одну строку
C-n
next-line
Вниз на одну строку
C-f
forward-char
Вперёд на один символ
C-b
backward-char
Назад на один символ
C-a
beggining-of-line
Начало строки
C-e
end-of-line
Конец строки
C-v
scroll-up
Вниз на одну страницу
M-v
previous-page
Вверх на одну страницу
M-f
next-word
Вперёд на одно слово
M-b
previous-word
Назад на одно слово
M-<
beginning-of-buffer
В начало буфера
M->
end-of-buffer
В конец буфера
C-g
keyboard-quit
Закончить (прервать) текущую операцию
goto-line
Переход на заданную строку
Сочетание клавиш
Команда
Действие
C-d
delete-char
Удалить символ перед точкой
M-d
kill-word
Удалить следующее слово
C-k
kill-line
Удалить текст до конца строки
M-k
kill-sentence
Удалить текст до конца предложения
M-\
delete-horizontal-space
Удалить все пробелы и знаки табуляции вокруг точки
C-q
quoted-insert
Вставить символ, соответствующий нажатой клавише или сочетанию, даже если это управляющая последовательность
M-q
fill-paragraph
Выровнять текст в текущем параграфе
Команды работы с пометками и регионами
Сочетание клавиш
Команда
Действие
C-space
set-mark-command
Установить пометку в точке
C-x C-x
exchange-point-and-mark
Поменять местами точку и начало пометки
mark-whole-buffer
Пометить весь буфер
C-w
kill-region
Удалить выделенную область в список удалений
M-w
kill-ring-save
Копировать выделенную область в список удалений
C-y
yank
Вставить текст из списка удалений в текущую позицию
M-y
yank-pop
Последовательно вставить текст из списка удалений
C-x x N
copy-to-register
Копировать отмеченный текст в регистр. N может быть буквой или цифрой, позволяя использовать множество регистров
C-x g N
insert-register
Вставить в точку содержимое регистра N
M-\
indent-region
Выровнять строки выделенного фрагмента
Сочетание клавиш
Команда
Действие
C-s
isearch-forward
Поиск строки вперёд
C-r
isearch-backward
Поиск строки в обратном направлении
replace-string
Поиск и замена строки
replace-regexp
Поиск и замена с использованием регулярного выражения
M-%
query-replace
Поиск и замена с запросом
Команды работы с файлами буферами и окнами
Сочетание клавиш
Команда
Действие
C-x C-f
find-file
Открыть файл на диске
C-x C-s
save-buffer
Сохранить буфер на диске
C-x C-w
write-file
Сохранить буфер в файле с новым именем
C-x C-b
list-buffers
Отобразить список открытых буферов в новом окне
C-x b
switch-to-buffer
Переключиться в другой буфер в текущем окне
C-x C-c
save-buffers-kill-emacs
Перед выходом из редактора запросить о необходимости сохранения изменённых файлов
C-x i
insert-file
Вставить содержимое файла в буфер в текущую позицию
C-x 0
delete-window
Закрыть текущее окно, при этом буфер не удаляется
C-x 1
delete-other-windows
Закрыть все окна кроме текущего
C-x 2
split-window-vertically
Разделить окно по горизонтали
C-x o
other-window
Перейти в другое окно
C-M-v
Выполнить прокрутку в другом окне
C-x 4 bC-x 5 b
Выбрать буфер в другом окне
C-x 4 C-oC-x 4 C-o
Показать буфер в другом окне
C-x 4 fC-x 5 f
Загрузить файл в другое окно
C-x 4 rC-x 5 r
Открыть файл в режиме чтения в другом окне
C-x 4 dC-x 5 d
Запустить Dired в другом окне
C-x 4 .C-x 5 .
Найти тег в другом окне
C-x {
Сузить текущее окно
C-x }
Расширить текущее окно
Команды работы со справочной системой
Сочетание клавиш
Команда
Действие
C-h ?
help-for-help
Информация об использовании справочной системы
C-h t
help-with-tutorial
Использовать интерактивный учебник
C-h f
describe-function
Показать справку по функции
C-h v
describe-variable
Показать справку по переменной
C-h k
describe-key
Показать данные о том, что делает последовательность клавиш
C-h a
apropos
Поиск в справке по строке, регулярному выражению
C-h F
view-emacs-FAQ
Показать Emacs FAQ
C-h i
info
Показать документацию по Emacs (Info)
Прочие основные команды Emacs
Сочетание клавиш
Команда
Действие
M-x command
Выполнить команду Emacs с именем command
C-x u
undo
Отменить последнюю операцию
C-x r m
bookmark-set
Установить закладку. Полезно при поиске
C-x r b
bookmark-jump
Перейти к закладке
Настройка русского языка в GNU Emacs
Чтобы настроить GNU Emacs для работы с русским языком (предполагается использование кодировки koi8-r), надо поместить в ваш файл настройки (~/.emacs) следующие строки:
(set-language-environment 'Cyrillic-KOI8)(set-terminal-coding-system 'koi8-r)(set-keyboard-coding-system 'koi8-r)(setq default-buffer-file-coding-system 'koi8-r)(prefer-coding-system 'koi8-r)(define-coding-system-alias 'koi8-u 'koi8-r)(put-charset-property 'cyrillic-iso8859-5 'preferred-coding-system 'koi8-r)(codepage-setup 1251)(define-coding-system-alias 'windows-1251 'cp1251)(set-input-mode nil nil 'We-will-use-eighth-bit-of-input-byte)(setq-default coding-system-for-read 'koi8-r)(set-selection-coding-system 'koi8-r)
(require 'color-theme)(color-theme-gnome2)Вместо (color-theme-gnome2) необходимо вписать название понравившейся вам цветовой схемы.
Команда
Действие
^H k <ключ>
Краткое, полное описание ключа
^H f <функция>
Описание функции
^H a <текст>
Все функции с этим текстом
^H w <функция>
На какой клавише висит функция
Команда
Действие
^X ^F
Войти в файл по запросу
^X ^V
Войти в файл по запросу в том же окне
^X 4 ^F
Войти в файл по запросу в другом окне
^X ^S / S
Сохранить файл, все файлы
^X ^C
Выйти из всех файлов с сохранением
^X ^C
Забыть, что файл был изменен
^X ^W
Записать файл под другим именем — write-file
M-x<имя файла>
Поменять имя файла после записи
^X ^D<каталог>
Список файлов в каталоге
^X d
Dired-режим
^U ^X ^D<каталог>
Список файлов в каталоге
M-x view-file
Просмотреть файл
M-x insert-file
Вставить файл
^X ^S / S
Сохранить файл(ы)
Команда
Действие
^X 0
Уничтожить окно
^X 1
Первое окно на весь экран (ZOOM)
^X o
В другое окно
M-^V
Листать другое окно
^X ^B
Список буферов
^X k
Удалить буфер
Команда
Действие
M-x what-page
Какая страница
M-x what-line
Какая линия
M-= / ^=
Размер файла, позиция курсора
^X l
О странице
^X u / ^? / ^_
Откатка — undo advertised-undo
^G
Прервать команду
Большие/маленькие. Русские/латинские
Команда
Действие
M-- M-l
Сделать предыдущее слово маленьким
M-- M-u
Сделать предыдущее слово большим
M-- M-c
Сделать предыдущее слово маленьким с заглавной
C-x C-u
Сделать буквы области заглавными
C-x C-l
Сделать буквы области строчным
Команда
Действие
^b/^f
Сдвинуться на шаг
^p/^n
Следующая строка, предыдущая строка
M- f/b n/p
На слово или предложение
^X r
В середину окна
^V / M-V
На страницу вниз, вверх — scroll-up/scroll-down
^A / ^E
В начало или в конец строки
M-a / M-e
В начало или в конец предложения
M-< / >
Встать в начало, конец файла — beginning-of-buffer/ end-of-buffer
^@ / ^SPC
Запомнить позицию в тексте
^X ^X
Встать в запомненную позицию, запомнив текущую
^U ^@
Встать на предыдущую помеченную позицию
Установка окна в удобное положение
Команда
Действие
^L
Перерисовать экран — redraw-display
M-x goto-line
Выставить строку No в середину экрана
Вставка, удаление, редактирование строки
Команда
Действие
^D
Удалить символ
Del
Удаление
M-Del
Удалить предыдущее слово
M-x overwrite-mode
Режим замены
^K
Удалить конец строки, удалить начало строки
M-d
Удалить слово и пробелы за ним
M-^
Склеить строки delete-indentation
Команда
Действие
^Y
Вспомнить символы
M-y
Вспомнить предыдущие символы
^@
Запомнить угол региона — set-mark-command
^W
Удалить с запоминанием
^X x
Запомнить в регистре
M-d
Удалить слово с запоминанием — kill-word
M-w
Запомнить регион
^X x R
Запомнить регион в регистре —copy-to-register
^X g R
Вспомнить в регистре — insert-register
Команда
Действие
^u <команда>
Выполнить команду n раз (n — число)
M-x <функция>
Выполнить функцию по имени
M-x set-variable
Установить значение переменной
M-x global-set-key <функция>
Повесить на клавишу функцию
^X ( клавиши ^X )
Задать макрокоманду
X e^
Выполнить макрокоманду
name-last-kbd-makro
Присвоить ей имя
insert-last-kbd-makro
Воспроизвести клавиши Lisp-кода
insert-kbd-makro
Вставить Lisp-код по функции
M-x disassemble
Дизассемблировать функцию
Команда
Действие
^X ESC
Повторить последнюю команду `repeat-complex-command')
M-p/M-n
Листать команды минибуфера вверх/вниз
M-x list-command-history
История
Tab/space/?
Дополнить
Команда
Действие
^S/^R
Мягкий поиск вперёд/назад
DEL
Вернуться
^G
Прервать поиск
^S
Повторить поиск
M-%
Поиск и замена query-display " " — выполнять замену, DEL — прерваться
Команда
Действие
M-q
Отформатировать абзац
M-x auto-fill-mode
Установить или отменить режим автоформатирования
M-x set-variable indent-tabs-mode nil
Выровнять с помощью пробелов
M-x tabify
Свернуть все пробелы в табуляторы
M-x untabify
Развернуть все табуляторы в пробелы
Команда
Действие
[^X] ^Z
Выйти в ОС — suspend-emacs
ESC !
Выполнить команду shell по запросу — shell-command
M-x shell
Открыть окно с shell
Фильтры
Команда
Действие
M-x outline-mode to turn on Outline mode in the current buffer.set-var outline-regexp по умолчанию ^[*][*]*
Задаёт фильтр
M-x hide-body
Спрятать всё, кроме заголовков
M-x show-all
Включить все строки
Команда
Действие
^X ^N
Поставить стоп на next, previous-line
^U ^X ^N
Снять
truncate-lines=no
Не сворачивать строки
scroll-...
Мягкий скролл, без прыжков
1. ctl-arrow nil
Представлять CTRL-символы ^? или \xxx
Команда
Действие
M-x load-file / library
Загрузить файл с Lisp .elc, .el
M-x byte-compile-file
Откомпилировать файл
M-x byte-recompile-directory
Перекомпилировать файлы в директории
M-x disassemble
Декомпиляция Lisp-функции
M-x insert-kbd-makro
Вставить описание функции