Emacs для писателей

Это статья о моем пути к поиску и настройке Emacs в качестве текстового редактора для писателя и о результатах этого пути.

Путешествие начинается

Иногда пользователь компьютера может почувствовать себя в некотором роде охотником за сокровищами. Подумайте об этом: вы находитесь в поисках того единственного приложения, которое идеально подходит для ваших нужд. Вы начинаете поиски, ищете карту сокровищ на каком-нибудь сайте или форуме, которая укажет вам на «икс», обозначающий это место. Когда вы наконец находите его, вам кажется, что вы нашли золото. Именно так я чувствовал себя, когда открыл для себя GNU Emacs и начал использовать его как инструмент журналиста, а не как инструмент программиста или для любой другой задачи, на которую он способен.

Продолжая притчу о поиске сокровищ, скажу, что путь через джунгли был нелегким и недолгим. Моей целью было найти текстовый редактор или текстовый процессор не отвлекающий от работы, который бы работал в Linux. Это было несколько лет назад, и выбор был не так уж велик, хотя тенденция не отвлекаться от работы начинала набирать обороты. Были такие варианты, как Pyroom (доступен и сегодня), FocusWriter (все еще активно разрабатывается) и AbiWord, который имеет полезный полноэкранный режим. Я пользовался тем или иным вариантом в течение месяца или двух, но в конце концов столкнулся с некоторыми ограничениями. Я также пробовал использовать старые программы, такие как Word Perfect и WordStar, в эмулируемой среде. Это был не лучший опыт, потому что в них отсутствовала поддержка Юникода, что создавало дополнительные проблемы при работе с различными кодовыми страницами.

Тогда я сделал открытие: GNU Emacs – dnf install emacs. Эта команда установит весь пакет вместе с GTK-версией программы по умолчанию.

Раскрытие потенциала

Помнится, я где-то видел скриншот, и мне понравилась его простота. Однако открыть этот сундук с сокровищами оказалось далеко не просто. Emacs во многом идиосинкразичен – его логика предшествует многим современным редакторам и текстовым процессорам. Меня предупреждали: кривая обучения будет крутой, но как только вы доберетесь до нее, вы будете на крючке. Так и пошло. Пытаясь раскрыть его потенциал с помощью всех комбинаций клавиш быстрого доступа, я часто чувствовал себя как искусный взломщик замков. Но в конце концов все получилось.

Режимы

Emacs, когда вы впервые открываете его, не особенно полезен для написания текстов. По сути, это простой текстовый редактор с довольно замысловатыми комбинациями клавиш. Волшебство происходит в режимах Emacs, а их существует множество. Именно так вы можете настроить Emacs так, чтобы он плясал под вашу дудку. Понимание концепции режимов очень важно. Существуют мажорные и минорные режимы. Некоторые из них включены по умолчанию, а другие требуют установки. Основной режим определяет поведение при редактировании, а второстепенный режим – это дополнительная функция, которую можно включить или выключить, и она не обязательно специфична для типа файла.

Пакеты и репозитории

Emacs также имеет свои собственные пакеты и репозитории, некоторые из которых доступны в виде пакетов в репозиториях Fedora. Тем не менее, включение сторонних репозиториев в Emacs часто бывает необходимо. MELPA – один из наиболее часто используемых. Инструкции по его использованию можно найти на MELPA’s Getting Started page.

Визуально-строчный режим

Чтобы сделать Emacs пригодным для написания статей и книг, мне пришлось познакомиться с несколькими режимами. Начнем с «визуально-строчного режима». Этот режим доступен по умолчанию и служит для обводки строк, что, по сути, включает обводку слов.

Вы можете активировать любой основной или второстепенный режим, нажав M-x (обычно ALT + x ), а затем набрав название режима, в данном случае visual-line-mode. Нажатие Return завершает действие, и обводка слов немедленно включается.

Орфография в Emacs

Орфография тоже важна, и Emacs предлагает режим flyspell-mode. Вы можете в любой момент изменить словарь, например, с помощью команды ispell-change-dictionary. Более подробную информацию о возможностях FlySpell вы можете найти на EmacsWiki’s FlySpell page.

Подсчет слов, строк и символов в Emacs

Количество слов также являются важнейшей информацией для каждого писателя. Вашим союзником может стать wc-mode, доступ к которому можно получить по ссылке GitHub. Это второстепенный режим, который предоставляет функцию wc и добавляет в modeline подсчет слов, строк и символов в реальном времени. Кроме того, пользователи могут установить конкретные цели по добавлению или удалению слов.

Конфигурация

К этому моменту Emacs стал достойным инструментом для письма, но мы можем продолжать расширять его возможности.

Лично мне не нравится форма экранов современных компьютеров для письма, я предпочитаю более узкие поля для текста. Emacs можно настроить таким образом. (Я не могу вспомнить источник этого совета, возможно, он взят из Stack Overflow.)

Но прежде чем мы погрузимся в код, нам нужно понять еще один важный аспект Emacs: его конфигурационный файл. Традиционно /.emacs служит в качестве файла инициализации, но Emacs также использует /.emacs.el, /.emacs.d/init.el и /.config/emacs/init.el. Эти конфигурационные файлы позволяют нам настроить работу Emacs в соответствии с нашими предпочтениями.

Не углубляясь в технические аспекты, достаточно сказать, что мы можем указать, какие режимы должны запускаться автоматически и какие второстепенные режимы должны использоваться вместе с основным режимом. Emacs использует для этого крючки, и вы можете увидеть, как это работает, посмотрев мой файл init.el (см. ниже). Это означает, что мы можем настроить Emacs так, чтобы при открытии текстового файла всегда отображалось количество слов, или запускать „flyspell“ каждый раз, когда мы работаем с ним.

Если есть что-то, выходящее за рамки доступных режимов, это можно добавить в файл конфигурации. Так обстоит дело с полями. Добавив следующее в файл init.el, вы установите поля и назначите клавишу F5 для включения или выключения полей:

(defun my-set-margins ()
"Set margins in current buffer."
(setq left-margin-width 1)
(setq right-margin-width 1))
(add-hook 'text-mode-hook 'my-set-margins)
(defun my-toggle-margins ()
"Set margins in current buffer."
(interactive)
(if (or (> left-margin-width 0) (> right-margin-width 0))
(progn
(setq left-margin-width 0)
(setq right-margin-width 0)
(set-window-buffer (selected-window) (current-buffer)))
(setq left-margin-width 26)
(setq right-margin-width 26)
(set-window-buffer (selected-window) (current-buffer))))
(global-set-key [f5] 'my-toggle-margins)

Вы также можете настроить знаки препинания. Более подробную информацию об этом можно найти на Emacswiki.

Вы даже можете сделать так, чтобы каждое нажатие клавиши звучало как на старой печатной машинке, используя selectric-mode.

Нажатия клавиш и короткие сокращения

Теперь мы рассмотрим некоторые интригующие детали, демонстрирующие гибкость Emacs.

Буферы

В Emacs есть специальный буфер (текст, который вы редактируете в Emacs, находится в объекте, называемом буфером), куда вы можете быстро записать какую-нибудь мысль, факт или напоминание. В процессе работы это может быть очень полезно. Позже все заметки можно сохранить в отдельном файле. Вы можете перемещаться между всеми открытыми буферами, нажимая Ctrl + left или Ctrl + right.

Просмотр других файлов/веб-страниц

Вы можете легко открывать другие файлы или просматривать веб-страницы с помощью встроенного браузера EWW (Alt + x). По сути, это текстовый браузер, чем-то напоминающий Lynx. В нем вы найдете все, что нужно, чтобы проверить что-то в Интернете. Гораздо удобнее делать все это в самом Emacs, чем постоянно переключаться на браузер системы по умолчанию. Как только вы привыкнете к нему, мышь в Emacs будет использоваться редко.

Разделенные экраны

Горячие клавиши, такие как Ctrl + x 3 (это означает, что вы должны нажать Ctrl + x вместе, а затем 3), доступны для использования в любое время. Это особое сочетание клавиш делит экран по вертикали на две половины, позволяя одновременно просматривать два разных файла или прокручивать один и тот же. Ctrl + x 2 может разделить экран по горизонтали, и вы можете сделать это несколько раз, открывая множество различных буферов.

Клавиши для отмены, вырезания и вставки

Ctrl + x u – отмена, Ctrl + space отмечает начало и конец выделения, что напоминает WordStar. Это одна из тех вещей, которые я больше всего люблю, когда пишу в Emacs. Ctrl + w вырезает текст, Alt + w копирует его, а Ctrl + y вставляет. Ctrl + x + Ctrl + f открывает файл. Я уже упоминал, что у Emacs есть несколько интересных причуд?

Что еще?

Вы можете изменить цвета и темы по своему вкусу, настроить шрифт по умолчанию и сохранить свои предпочтения. Иногда мне нравится использовать старые классические зеленые или оранжевые темы и менять шрифт на CGA или VGA.

Временами может показаться, что для настройки Emacs нет никаких ограничений. То, что он предлагает, поистине удивительно.

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

Сохраните эту конфигурацию

Прежде чем закончить, следует упомянуть еще об одном преимуществе. Когда вы найдете идеальный файл конфигурации, вы можете просто скопировать его на другие используемые компьютеры, и когда вы перейдете на новый, у вас сразу же будет нужная вам настройка Emacs.

Заключение

Если Джордж Р. Р. Мартин, автор популярной серии книг «Песнь льда и пламени» (по мотивам которой снят телесериал «Игра престолов»), решит отойти от WordStar, которым он, по слухам, до сих пор пользуется, я бы порекомендовал ему Emacs. Возможно, на первых порах кому-то придется настроить его, но после этого он будет чувствовать себя как дома. Есть даже «wordstar-mode», если он захочет придерживаться некоторых сочетаний клавиш WordStar.

При написании этой статьи я наткнулся на этот отличный ресурс, если вы хотите погрузиться в глубины
пишу на Emacs. Настоятельно рекомендую.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен fedoramagazine.org

Похожие статьи

Комментарии (0)