Настройка emacs. Часть 2

Продолжим настраивать emacs, здесь не будет много слов. Сразу с места в карьер. Файл настроек emacs это скрипт на emacs-lisp. Для того, что закомментировать строчку используется точка с запятой. Как сделать блочные комментарии я не знаю. Вроде этой возможности нет, если я это упустил, то напиу в комментариях.
Далее пойдут выдержки кода и пояснение к ним.

(setq inferior-lisp-program "/usr/local/bin/sbcl")

Это строка задаст программу отвечающую за лисп.

(set-language-environment 'utf-8)
(setq slime-net-coding-system 'utf-8-unix)
(setq lisp-lambda-list-keyword-parameter-alignment t)
(setq lisp-lambda-list-keyword-alignment t)
(setq common-lisp-style-default 'modern)
(cua-mode t)
(setq x-select-enable-clipboard t) ;;Общий с ОС буфер обмена:
(tooltip-mode -1)
(menu-bar-mode -1) ;; отключаем графическое меню
(tool-bar-mode -1) ;; отключаем tool-bar
(scroll-bar-mode -1) ;; отключаем полосу прокрутки
(blink-cursor-mode -1) ;; курсор не мигает
(setq use-dialog-box nil) ;; никаких графических диалогов и окон - все через минибуфер
(setq redisplay-dont-pause t) ;; лучшая отрисовка буфера
(setq ring-bell-function 'ignore) ;; отключить звуковой сигнал
(delete-selection-mode t) ;; возможность удалить выделенный текст при вводе поверх
(electric-pair-mode 1) ;; автозакрытие {},[],() с переводом курсора внутрь скобок
(electric-indent-mode -1) ;; отключить индентацию electric-indent-mod'ом
(setq inhibit-startup-message t)
(fset 'yes-or-no-p 'y-or-n-p)
(setq default-tab-width 4)
(setq make-backup-files nil)

Здесь настройки прокомментированы, но по особо важным я дополнительно пройдусь. cua-mode — это использование Ctrl+x/c/v для вырезки, копирования, вставки. Это неоднозначный режим, есть много его противников, но я его включил.

(global-set-key (kbd "M-s") 'shell)
(global-set-key (kbd "M-g") 'goto-line)
(global-set-key (kbd "C-x C-b") 'ibuffer)
(global-set-key (kbd "M-k") 'calculator)

Здесь мы настраиваем сочетания клавиш. Таким способом можно настроить свои сочетания клавиш для каких-либо действий. Сразу напомню, что первая строчка настраивает запуск терминала на Alt+s.

;;русские буквы автоматически транслируются в соответствующие английские.
(defun reverse-input-method (input-method)
"Build the reverse mapping of single letters from INPUT-METHOD."
(interactive
(list (read-input-method-name "Use input method (default current): ")))
(if (and input-method (symbolp input-method))
(setq input-method (symbol-name input-method)))
(let ((current current-input-method)
(modifiers '(nil (control) (super) (meta) (control meta))))
(when input-method
(activate-input-method input-method))
(when (and current-input-method quail-keyboard-layout)
(dolist (map (cdr (quail-map)))
(let* ((to (car map))
(from (quail-get-translation
(cadr map) (char-to-string to) 1)))
(when (and (characterp from) (characterp to))
(dolist (mod modifiers)
(define-key local-function-key-map
(vector (append mod (list from)))
(vector (append mod (list to)))))))))
(when input-method
(activate-input-method current))))

(reverse-input-method 'russian-computer)

Этот код нужен для того, чтобы русские сочетания клавиш преобразовывались в соответствующие английские. Т.е. сочетание Ctrl+z и Ctrl+я идентичны. Иначе для любой команды вам пришлось бы переводить раскладку на англ.
Ещё одна неплохая штука это el-get

;;el-get
(add-to-list 'load-path "~/.emacs.d/el-get/el-get")
(unless (require 'el-get nil 'noerror)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.github.com/dimitri/el-get/master/el-get-install.el")
(goto-char (point-max))
(eval-print-last-sexp)))

el-get это менеджер пакетов для emacs. С помощью него можно поставить дополнительные плагины/режимы/модули для emacs. Для того, чтобы автоматически подключить пакеты пишем:

(setq my:el-get-packages
'(magit
slime))

Здесь мы подключаем пакет magit для работы с git и slime для подключения к sbcl. В следующих записях я ещё буду возвращаться к файлу конфигурации и подключаемым плагинам. Думаю на сегодня этого будет достаточно. Если кому интересно — смотрите чужие конфиги, читайте документацию и собирайте свой emacs. Это как путь джедая, каждый джедай сам должен собрать свой световой меч.
Теперь запустим слайм и порадуемся своему успеху или начнём искать ошибку (если он не запустится). Запускаем слайм с помощью M-x slime RET (ret это return=enter).
slime-repl-emacs
Для выхода набираем

(quit)

Напоследок хочу сказать, что данный текст набирался на emacs в text-mode и longlines-mode.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.