Решением, отличным от X, является пакет emacs-w32 под Editors в настройке cygwin. Он запускает emacs как собственное приложение Windows, но все еще является чистым Cygwin. Если вы запустите его прямо из ярлыка, вам могут понравиться эти настройки в ~ / .emacs:
Добавьте cygwin в path и exec path, если cygwin по умолчанию отсутствует в вашей переменной PATH:
(setenv "PATH" (concat "/ bin: / usr / bin: / usr / local / bin:" (getenv "PATH")))
(nconc exec-path '("/ bin" "/ usr / bin" "/ usr / local / bin"))
Если вы компилируете java или другие вещи, которые генерируют имена файлов, такие как C: \ what, вы можете сначала отредактировать / etc / fstab и добавить монтирование из C: \ в / c, например:
C: / c двоичный файл ntfs, пользователь 1 1
А затем обрабатывайте файлы, начинающиеся с C: как «магические имена файлов», которые переводятся в имена файлов в стиле Cygwin с этим в ~ / .emacs. Здесь я просто делаю две замены регулярного выражения в первом аргументе и игнорирую остальные. Кто-то, вероятно, должен создать .el для этого, сделать его более надежным и опубликовать его на http://www.emacswiki.org/emacs/ElispArea :
; Находясь в cygwin, разрешите C: \ what превратиться в / c / what
(defun cygwin-name-hook (операция и остальные аргументы)
Msgstr "Превратить имена файлов Windows в имена файлов Cygwin."
;; Обрабатывать все операции одинаково
(пусть ((сначала (автомобильные аргументы))
(Блокировка-имя-файла-обработчики
(минусы "cygwin-name-hook"
(и (например, операция-запрет-имя-файла-операция)
ингибирующие-имя-файла-обработчики)))
(операция запрета имени файла операции))
(setq first (replace-regexp-in-string "^ C:" "/ c" first t))
(setq first (replace-regexp-in-string "\\\\" "/" first t))
(применить операцию (сначала минусы (cdr args)))))
(добавить в список 'file-name-handler-alist' ("^ [Cc]:". cygwin-name-hook))
Затем, если вы запустите emacs -nw внутри mintty, вам может понадобиться распознать больше ключей, поместив их в ~ / .emacs:
***** Для мяты
(define-key function-key-map "\ e [1; 5m" [(control? -)])
(define-key function-key-map "\ e [1; 5k" [(control? =)])
(define-key function-key-map "\ e [1; 5q" [(control? 1)])
(define-key function-key-map "\ e [1; 5s" [(control? 3)])
(define-key function-key-map "\ e [1; 5t" [(control? 4)])
(define-key function-key-map "\ e [1; 5u" [(control? 5)])
(define-key function-key-map "\ e [1; 5w" [(control? 7)])
(define-key function-key-map "\ e [1; 5x" [(control? 8)])
(define-key function-key-map "\ e [1; 5y" [(control? 9)])
(define-key function-key-map "\ e [1; 5p" [(control? 0)])