Использование Emacs под Windows
Краткая инструкция, в которой описывается установка и настройка Emacs под Windows для работы в Org-mode: написания заметок и инструкций с последующим экспортом в PDF и OpenDocument Text; ведения списка задач. Подразумевается, что Emacs и Org-mode уже настроены, а конфиг лежит где-то на GitHub, и надо его только немного адаптировать под Windows.
Chocolatey
Первым делом необходимо установить choco: скачать скрипт, изменить политику выполнения по умолчанию и запустить сам скрипт.
Описание требуемой политики с сайта Microsoft (для домашних компьютеров политика по умолчанию – Restricted
):
- Scripts can run.
- Requires that all scripts and configuration files be signed by a trusted publisher, including scripts that you write on the local computer.
- Prompts you before running scripts from publishers that you haven't yet classified as trusted or untrusted.
- Risks running signed, but malicious, scripts.
Изменить политику через PowerShell и запустить установочный скрипт (всё это надо делать с правами администратора):
PS C:\Windows\system32> Set-ExecutionPolicy AllSigned PS C:\Temp> .\install.ps1
После установить необходимые программы следующим образом:
PS C:\Temp> choco install emacs findutils grep hunspell.portable git zip unzip miktex strawberryperl
Пояснение:
zip
иunzip
позволяют делать экспорт из Org-mode в OpenDocument Text;miktex
иstrawberryperl
позволяют худо-бедно делать экспорт в PDF.
Словари для Hunspell можно взять тут. Файлы index.aff
и index.dic
необходимо скопировать в директорию ~/Hunspell
и назвать соответствующим образом.
Внутри MiKTeX уже есть шрифт Computer Modern Bright, нужно только добавить соответствующую директиву в org-документ.
Emacs
Настройка Emacs, которую можно добавить в custom.el
:
;; old familiar font (custom-set-faces '(default ((t (:family "Lucida Console" :foundry "outline" :slant normal :weight regular :height 120 :width normal))))) ;; make `rgrep' work (setq find-program (expand-file-name "bin/find.exe" (getenv "ChocolateyInstall"))) ;; make `hunspell' work (let ((base (expand-file-name "Hunspell" (or (getenv "HOME") (getenv "HOMEPATH"))))) (setenv "DICPATH" base) (setenv "DICTIONARY" "en_US") (setq ispell-hunspell-dict-paths-alist `(("en_US" ,(expand-file-name "en_US.aff" base)) ("ru_RU" ,(expand-file-name "ru_RU.aff" base)))))
Про работу с Hunspell под Windows можно почитать у Xah Lee в этом посте.
Изменить шрифт можно через меню, если нет желания разбираться с конфигом:
- Options → Set Default Font …
- Options → Save Options
Самый простой шаблон для org-документа, который использует упомянутый шрифт:
#+LATEX_CLASS: article #+LATEX_CLASS_OPTIONS: [a4paper] #+LATEX_HEADER_EXTRA: \usepackage{cmbright} #+LATEX_HEADER_EXTRA: \hypersetup{colorlinks=true, urlcolor=blue} #+LATEX_HEADER_EXTRA: \setlength{\parindent}{0pt}
Git
В Windows есть встроенный ssh-клиент, а Git, по умолчанию, использует свой внутренний, который может быть не доступен из консоли (расположен в директории C:\Program Files\Git\usr\bin
, которая, по умолчанию, не добавляется в пути). В принципе, это можно изменить через переменную GIT_SSH
, но необходимости нет.
Чтобы сгенерировать ключи посредством команды ssh-keygen
, необходимо перейти в упомянутую директорию и выполнить:
PS C:\Program Files\Git\usr\bin> ssh-keygen.exe -f %HOME%/.ssh/id_%COMPUTERNAME%
Затем обновить ~/.ssh/config
:
Host github.com User git IdentityFile ~/.ssh/id_computer-name
После чего можно загрузить полученный pub-файл на GitHub, TFS и т.д.
Для корректной работы Magit необходимо установить ssh-agency, который доступен в списке пакетов MELPA. В custom.el
, соответственно, добавляется ещё одна строчка:
(require 'ssh-agency)
Syncthing
Ставится отдельно. Инструкция по автозапуску: Run at user log on or at system startup using Task Scheduler.
В конфиг Org-mode при этом необходимо добавить включение Auto Revert Mode, чтобы буфер перезагружался при изменение файла:
(add-hook 'org-mode-hook #'auto-revert-mode)
Клавиатура
Переназначить Caps Lock можно через утилиту PowerToys.