Многие вопросы, вот некоторые ответы:
Ваш .emacs может существовать во многих местах, в зависимости от этого, прочитайте здесь . Вкратце попробуйте C-x C-f .emacs или проверьте значение переменной 'user-init-file
( C-h v user-init-file ).
Я думаю, что команда, которую вы хотите, что-то вроде этого:
(require 'comint) ; this does require comint
(defun cygwin ()
"do what i want for cygwin"
(interactive)
(let ((buffer (get-buffer-create (generate-new-buffer-name "cygwin"))))
(pop-to-buffer buffer)
(unless (comint-check-proc buffer)
(apply 'make-comint-in-buffer (buffer-name buffer) buffer "c:/cygwin/Cygwin.bat"
nil
nil)
(ansi-color-for-comint-mode-on)
(set-buffer-process-coding-system 'undecided-unix 'undecided-unix))))
Примечание: Я непосредственно запустил процесс Cygwin.bat
вместо того, чтобы запустить оболочку и запустить этот пакетный процесс. Я считаю, что эффект тот же, и более прямой. Я выбрал простой способ присвоения имени буферу (используя 'generate-new-buffer-name
) - вы захотите настроить то, что вам нужно.
Вы можете вывести указанную выше команду в свой .emacs проще всего, выполнив C-x C-f .emacs и вставив ее в открываемый буфер. Сохраните его и перезапустите (или выполните M-x eval-defun , когда курсор находится в теле этой команды. Затем M-x cygwin запустит команду.