.
Многие действия в Emacs выполняются с помощью последовательного
нажатия нескольких комбинаций клавиш. Например, открытие файла
выполняется комбинацией =C-x C-f=. Выполнить такую комбинацию очень
просто. Необходимо нажать CONTROL, затем =x=, затем =f=.
Если Emacs перестал реагировать на ваши команды, то вы можете
вывести его из этого состояния нажав =C-g=. Вы можете также
использовать =C-g=, чтобы остановить выполнение команд, которые
слишком долго выполняются.
Комбинациям клавиш соответствуют команды (функции Elisp). Для поиска
и непосредственного ввода команд можно использовать комбинацию
=M-x=.
Для выхода из редактора используйте комбинацию =C-x C-c=.
* Работа с файлами и буферами
Для того, чтобы открыть файл нажмите =C-x C-f=, Emacs попросит вас
ввести имя файла. Оно набирается в нижней строке экрана, которая
называется мини-буфером. Для того, чтобы создать файл введите новое
имя в мини-буфере.
Когда вы вводите имя файла (или любую другую информацию в
мини-буфере), вы можете отменить текущую команду нажав =C-g=.
Чтобы сохранить содержимое файла нажмите =C-x C-s=. Если файл
изменялся с момента открытия или последнего сохранения, в строке
состояния (внизу окна Emacs) слева будут отображены два символа =*=
(звёздочка), иначе на их месте отображаются символы =-= (дефис).
Открывать и сохранять файлы можно также через пункт меню *File*.
Каждому открытому файлу в Emacs соответствует так называемый буфер,
отображающий содержимое этого файла. Чтобы увидеть список буферов,
созданных в текущем сеансе Emacs, наберите =C-x C-b=. Мы видим, что
каждый буфер имеет имя и может иметь связанное с ним имя файла,
содержимое которого хранится в данном буфере. Просматривать и
перемещаться по буферам можно также через пункт меню *Buffers*.
Любой текст, который вы видите в окне Emacs (в том числе сам список
буферов), является частью какого-либо буфера. Чтобы убрать список
буферов наберите =C-x 1= (данная комбинация оставляет в текущем
окне только выделенный буфер).
Перейти в буфер по имени можно с помощью комбинации =C-x b=. После
ее выполнения имя буфера для перехода будет запрошено в мини-буфере.
Для того, чтобы отобразить в текущем окне два буфера нажмите =C-x 2=
(чтобы разделить окно горизонтально) или =C-x 3= (чтобы разделить
окно вертикально). Для перехода между буферами используйте
комбинацию =C-x o= или мышь.
** Удаленная работа с файлами
Emacs позволяет прозрачно для пользователя работать с файлами на
других компьютерах. Например, чтобы открыть файл
=inf/task1/hello.c=, расположенный в домашнем каталоге пользователя
=kryshen= на сервере =kappa.cs.karelia.ru= можно ввести комбинацию
клавиш =C-x C-f= и указать все параметры подключения в имени файла
следующим образом:
=/ssh:kryshen@kappa.cs.karelia.ru:inf/task1/hello.c= (при работе из
Windows с PuTTY вместо =ssh:= используйте префикс =plink:=), после
чего Emacs запросит в мини-буфере пароль для подключения к серверу
и все дальнейшие изменения в файле будут выполняться уже удаленно
на сервере.
При редактировании файла на другом сервере, все связанные с ним
команды будут также выполняться удаленно. Например сборка (=M-x
compile=) или отладка (=M-x gud-gdb=) программы =hello.c= из
предыдущего примера будут выполнены на сервере
=kappa.cs.karelia.ru=.
Emacs поддерживает большое количество протоколов для удаленной
работы с файлами: SSH, Telnet, FTP, WebDAV, OBEX и др.
* Редактирование текста
Как и в большинстве других редакторов для того, чтобы начать вводить
текст необходимо просто нажимать соответствующие символы на
клавиатуре. Для перемещения курсора можно использовать стрелки,
указатель мыши, а также комбинации клавиш, позволяющие осуществлять
более сложные перемещения (подробнее см. [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html][руководство по Emacs]]).
Комбинации клавиш для выполнения операций выделения текста,
копирования, вставки, отмены и т.д. могут показаться пользователям
редакторов с менее богатой историей слегка необычными:
- =C-/=, =C-_= или =C-x u= — отменить предыдущую команду
редактирования.
- =C-<Пробел>= — начать выделение текста.
- =M-w= — поместить выделенный текст в буфер обмена.
- =C-w= — вырезать выделенный текст и поместить его в буфер обмена.
- =C-k= — вырезать весь текст от курсора до конца строки и поместить
его в буфер обмена.
- =C-y= — вставить текст из буфера обмена, который был помещен туда
последним.
- =M-y= — если нажата сразу после =C-y=, то заменит только что
вставленный текст на тот, который был помещен в буфер обмена
предпоследним. Таким образом, можно поместить в буфер обмена сразу
несколько элементов и затем последовательно вставить их в разных
местах документа.
- =C-s= — поиск по файлу. Строка для поиска вводится в мини-буфер,
поиск осуществляется по мере набора текста.
- =M-%= — замена текста в текущем буфере.
Emacs также может имитировать более простой режим редактирования
документов, в котором используются комбинации: =C-c= для
копирования, =C-v= для вставки, =C-z= для отмены и =Shift= для
выделения текста. Для включения этой возможности выберите пункт меню
*Options → Use CUA Keys*.
* Другие возможности Emacs
- Чтение системной докумнтации: =M-x man= и =M-x info=.
- =M-x shell=: [[https://ru.wikipedia.org/wiki/%25D0%259A%25D0%25BE%25D0%25BC%25D0%25B0%25D0%25BD%25D0%25B4%25D0%25BD%25D0%25B0%25D1%258F_%25D0%25BE%25D0%25B1%25D0%25BE%25D0%25BB%25D0%25BE%25D1%2587%25D0%25BA%25D0%25B0_Unix][командная оболочка Shell]] (при удаленной работе может
потребоваться явно ввести путь к интерпретатору =/bin/bash=).
- =dired-mode= — файловый менеджер Emacs. Откройте любой _каталог_ с
помощью привычной комбинации клавиш =C-x C-f=, содержимое каталога
автоматически откроется в режиме =dired=. В данном режиме вы
можете навести курсор на любой файл и переименовать его (нажать
=R=), скопировать его (нажать =C=) или удалить (нажать =D=). Нажав
=C-x C-q= вы можете редактировать имена файлов просто редактируя
их в текущем буфере (изменения примут силу после сохранения, =C-x
C-s=). Подробнее см. [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Dired.html][описание Dired в руководстве по Emacs]].
- =M-x gnus= — Почтовый клиент. В вычислительной системе кафедры ИМО
он по умолчанию настроен на работу с почтовым сервером
=mail.cs.petrsu.ru=.
- =M-x compile= — простой способ вызова команды =make= из текущего
каталога.
- =M-x gdb= — интерфейс к отладчику GDB. Для перехода в расширенный
интерфейс отладчика выберите пункт меню *Gud → GDB-MI → Display
Other Windows*. При работе с удаленными файлами рекомендуется
использовать =M-x gud-gdb= — более легкий вариант отладчика без
поддержки расширенного интерфейса.
- =org-mode= — простой формат разметки, позволяющий превратить Emacs
в ежедневник для ведения заметок, списка важных дел, расписания и
т. д. Для того, чтобы начать использовать =org-mode= просто
начните редактировать в Emacs любой файл с расширением
=.org=. Кстати, это руководство также сделано в =org-mode=
([[http://cs.petrsu.ru/~kryshen/emacs/emacs-short-tutorial.org][emacs-short-tutorial.org]]). См. также более развернутый пример
([[http://cs.petrsu.ru/~kryshen/emacs/org-example.org][org-example.org]]), демонстрирующий некоторые дополнительные
возможности =org-mode=.
- =M-x term= — эмулятор терминала.
- =M-x butterfly= — см. рисунок 1.
- Делу время, потехе час:
- =M-x tetris= — тетрис,
- =M-x snake= — змейка,
- =M-x doctor= — психотерапевт,
- [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Amusements.html][многое другое]].
- раздел будет пополнятся.
* Дистрибутивы
Существуют дистрибутивы Емакса, предоставляющие готовую конфигурацию
и наборы дополнительных пакетов:
- [[https://prelude.emacsredux.com/][Prelude]] достаточно близок к конфигурации Емакса в вычислительной
системе ИМИТ, рекомендуется для самостоятельной установки;
- [[https://www.spacemacs.org/][Spacemacs]],
- [[https://github.com/hlissner/doom-emacs][Doom Emacs]].
* Дополнительные источники информации
- Встроенное в Emacs руководство по Emacs (для вызова нажмите =C-h t=)
- [[http://alexott.net/ru/writings/altlinux-emacs/][Emacs для начинающих]]
- [[https://gnu.org/software/emacs/tour/][A Guided Tour of Emacs]]
- [[https://www.gnu.org/software/emacs/refcards/pdf/ru-refcard.pdf][Шпаргалка по командам Emacs]] ([[https://www.gnu.org/software/emacs/refcards/pdf/refcard.pdf][версия на английском]])
- [[http://sachachua.com/blog/series/a-visual-guide-to-emacs/][A Visual Guide to Emacs]]
См. также: [[file:emacs-petrsu-cs.org][конфигурация Emacs в вычислительной системе кафедры ИМО ПетрГУ]].
# Local Variables:
# org-html-preamble: "Кафедра ИМО ПетрГУ | М. А. Крышень"
# org-html-postamble: "Авторы: Александр Колосов <alexander@kolosov.xyz>, Михаил Крышень <kryshen@cs.petrsu.ru>
Эта работа публикуется на условиях лицензии Creative Commons Attribution 4.0 International.
Последние изменения: %C
"
# End: