Дочерние процессы в emacs
В emacs есть дочерние процессы или suprocesses. Например, когда вы запускаете shell из emacs вы запускаете дочерний процесс. Для настройки кодировок in и out для дочерних процессов есть переменная process-coding-system-alist. В этой переменной можно задать кодировки для конкретных процессов. Но как узнать точное имя процесса?
Для получения списка процессов можно использовать команду M-x list-processes. Например, с помощью этой команды я узнал, что при запуске консоли cmd.exe процесс называется не «cmd» и не «cmd.exe», а «shell».
Как просмотреть значение переменной в emacs
Emacs настраивается при помощи большого количества различных переменных. Для просмотра значения переменной можно использовать функцию describe-variable, которая обычно запускается сочетанием клавиш C-h v.
cygwin shell в emacs
Если вы используете cygwin shell и emacs, то cygwin shell можно запускать не как отдельное приложение, а как буфер в emacs.
Для того, чтобы использовать cygwin shell в emacs конечно в первую очередь необходим сам cygwin.
Затем необходимо настроить параметр w32shell-cygwin-bin. В EmacsW32 настроить этот параметр можно через меню Options – Castomize EmacsW32 – Current Cygwin path.
Cygwin у меня располагается в C:\cygwin\bin. Поэтому, значение переменной w32shell-cygwin-bin я установил в »/cygwin/bin».
В файл .emacs следует добавить следующие строки:
(setenv "PATH" (concat (getenv "PATH") ";c:\\cygwin\\usr\\local\\bin" ";c:\\cygwin\\bin")) (setq exec-path (cons "c:\\cygwin\\bin" exec-path))
Теперь с помощью пункта меню Tools – W32 Shells – Cygwin Shell можно открыть отдельный буфер с cygwin shell.
Очень удобно вместе с cygwin shell открыть в отдельном буфере man с помощью команды «M-x man».
Хороший мануал по настройке cygwin в emacs есть тут.
Игры в emacs
В emacs по умолчанию есть большое количество игр. Причём есть как текстовые игры (например, ролевая игра Adventure), так и с псевдографикой (например, «Тетрис»).
Файлы игр в emacs размещаются в каталоге emacs\lisp\play.
Большое количество игр можно найти на EmacsWiki.
Календарь в emacs
В emacs есть календарь, который вызывается командой
M-x calendar
Этот календарь можно использовать как ежедневник. Записи ежедневника хранятся по умолчанию в файле ~/diary. Этот файл необходимо создать вручную. Для просмотра и редактирования записей ежедневника необходимо выбрать дату и нажать клавишу «d». Также можно использовать контекстное меню, вызываемое правой и средней кнопкой мыши.
Посмотреть все записи ежедневника можно, нажав клавишу «s».
С помощью календаря emacs можно легко узнать какой сегодня день по счету от начала года и сколько дней осталось до конца года. Для этого нужно кликнуть правой клавишей мыши на интересующей дате и из контекстного меню выбрать «Other calendars».
Хорошая инструкция по работе с календарем в emacs есть тут.
Калькулятор в emacs
В emacs есть встроенный калькулятор. И если вы постоянно используете emacs, то использование встроенного калькулятора удобнее, чем калькулятор Windows.
Запуск встроенного калькулятора осуществляется командой
M-x calc
В этом калькуляторе используется обратная польская запись. То есть, если надо разделить 1 на 2, то надо вводить не «1 / 2″, а «1 2 /».
Разумеется, если у вас установлен R + ESS, то их тоже можно использовать в качестве калькулятора:
M-x R
Файл настроек emacs
А знаете ли вы, что начиная с версии 22 настройки emacs рекомендуется хранить в файле ~/.emacs.d/init.el (proof link)
Работа с Haskell в Emacs
Для работы с Haskell в Emacs есть специальный haskell-mode. Процесс установки описан в README файле. Он сводится к редактированию файла .emacs. Вызвать сложность может только настройка пути к файлу ghci.exe под Windows. Для примера приведу фрагмент из своего .emacs файла:
;; Настройка Haskell mode (setq load-path (cons "~/.emacs.d/modes/haskell-mode-2.8.0" load-path)) (load "haskell-site-file") (add-hook 'haskell-mode-hook 'turn-on-haskell-doc-mode) (add-hook 'haskell-mode-hook 'turn-on-haskell-indentation) ;;(add-hook 'haskell-mode-hook 'turn-on-haskell-indent) ;;(add-hook 'haskell-mode-hook 'turn-on-haskell-simple-indent) (add-hook 'haskell-mode-hook 'font-lock-mode) (add-hook 'haskell-mode-hook 'imenu-add-menubar-index) ;;(setq haskell-program-name "C:/Program Files/Haskell Platform/2010.2.0.0/bin/ghci.exe")
После запуска Emacs для начала работы с Haskell необходимо запустить haskell-mod командой M-x haskell-mode и нажать комбинацию клавиш C-c C-b. Открывается новый буфер *haskell*.
PS. Для установки haskell-mode в Ubuntu можно просто выбрать его в Центре приложений Ubuntu.
PPS. Пока заставить работать haskell-mode под Ubuntu 10.04 не получилось
Работа с F# в Emacs
Хорошая инструкция по настройке Emacs для работы с F# есть в Блоге сурового челябинского программиста. Hello World программу для F# можно найти тут.


admin





