Подтвердить что ты не робот

Как лучше всего интегрировать Emacs и Cygwin?

Существует множество способов интеграции Cygwin с Emacs в Windows. EmacsWiki показывает несколько идей. Вот варианты, которые я нашел:

  • Используйте Emacs, который поставляется с Cygwin. (Тогда найдите способ добраться до cmd.exe, если хотите.)
  • Используйте NTEmacs и Cygwin как "иногда" оболочку. (Специальная команда для запуска Cygwin)
  • Используйте NTEmacs и Cygwin как "всегда" оболочку. (Оболочка M-x запускает cygwin)

Чтобы дать некоторую ясность относительно "почему". Вот несколько примеров, где я бы хотел, чтобы Cygwin с Emacs:

  • M-x whois не работает на NTEmacs.
  • Пакеты, такие как Wanderlust, включают Makefile, который не поддерживает Windows.
  • Иногда мне просто нужна оболочка bash для чего-то.

Итак, какой вариант Emacs/Cygwin хорошо работает для других? Кроме того, успешно ли кто-нибудь попытался интегрировать MSYS?

4b9b3361

Ответ 1

Используйте Emacs в Cygwin. Не XEmacs..Emacs. Я просто устанавливаю все из Cygwin и набираю следующее для запуска Emacs:

XWin -multiwindow
export DISPLAY=:0.0
emacs&

Это может также помочь создать ссылку на ваш диск C (или любой другой диск), например:

ln -s /cygdrive/c /c

Я использую это несколько месяцев, и он всегда работает хорошо. Я постоянно использую расширенные функции, такие как TRAMP и subversion, без каких-либо проблем. Все расширенные пакеты, такие как cedet, просто работают.

Если вы не заметили, я являюсь оригинальным плакатом. После всех моих исследований и попыток эта работа работала, и я ОЧЕНЬ ПРИНИМАЮ. Хорошая работа Cygwin!

Кроме того, я рекомендую не использовать оболочку внутри Emacs. Утилиты вроде top просто не работают. Вместо этого используйте MinTTY и экран. Cygwin дает вам ssh непосредственно в MinTTY (вам не нужна замазка). Лучше всего то, что многие мои знания в Linux отлично работают в Windows.

Ответ 2

Четвертый выбор - запустить emacs в одном из альтернативных терминалов Cygwin: (u) rxvt, mintty, xterm. Все они предлагают гораздо лучшую эмуляцию терминала, чем консоль, что означает значительно улучшенный опыт emacs.

Ответ 3

Лучшим решением должно быть cygwin emacs-w32. Он использует win32 native gui и использует систему POSIX cygswin. Это означает, что у вас есть родная GUI-программа windows и весь путь cygwin, работающая оболочка.

Установка очень проста: setup.exe → emacs-w32. Теперь номер версии: 24.2.93.1

Так хорошо.

Ответ 4

Я обычно использую собственную версию emacs в окнах в сочетании с (также родными) портами gnu utils, которые намного быстрее, хотя и менее полны, чем Cygwin.

Затем я просто использую окно cygwin для оболочки bash и вещи, которые отсутствуют.

Ответ 5

Я установил cygwin в корневой каталог. Он явно предупреждает вас об этом, но я не видел никаких побочных эффектов. (Я нашел этот совет от Стива Егге).

Я также установил cygwin-mount, что помогает связке. Кроме того, мне пришлось переключиться с ispell на aspell. В конце концов, немного настройки .emacs, и мне было хорошо:

;;;;;;;;;;;;;;;;;;;;;;
;;CygForTheWin
;;*cygwin
(when (equal system-type 'windows-nt) 
(message "Setting up Cygwin...")
(let* ((cygwin-root "c:")
       (cygwin-bin (concat cygwin-root "/bin"))
       (gambit-bin "/usr/local/Gambit-C/4.0b22/bin/")
       (snow-bin "/usr/local/snow/current/bin")
       (mysql-bin "/wamp/bin/mysql/mysql5.0.51a/bin/"))
   (setenv "PATH" (concat cygwin-bin ";" ;
                          snow-bin ";" 
                          gambit-bin ";"
                          mysql-bin ";"
                          "c:/usr/local/jdk1.60_03/bin/"
                          ".;")  
           (getenv "PATH"))
   (setq exec-path (cons cygwin-bin exec-path)))

(require 'cygwin-mount)
(cygwin-mount-activate)

(setq shell-file-name "bash")
(setq explicit-shell-file-name "bash")

(defun jonnay-cygwin-shell ()
  "Wrapper around cygwin-shell so that it doesn't throw an error"
  (interactive)
  (condition-case e
   (cygwin-shell)
   (message "There was an error trying to launch the shell: %s" e)))

(message "Setting up Cygwin...Done")


;; found from the manual, check, use and make go?
 (defun my-shell-setup ()
   "For Cygwin bash under Emacs 20"
   (setq comint-scroll-show-maximum-output 'this)
   (setq comint-completion-addsuffix t)
   (setq comint-eol-on-send t)
   (setq w32-quote-process-args ?\")
   (make-variable-buffer-local 'comint-completion-addsuffix))

(setq shell-mode-hook 'my-shell-setup)
(add-hook 'emacs-startup-hook 'jonnay-cygwin-shell)
)

Ответ 6

Мне нравится версия xemacs, которую вы получаете из программы установки Cygwin. Выполняется из коробки, ключ Alt сопоставляется с Meta просто отлично, а буфер оболочки bash существует там, где вам это нужно.

Ответ 7

Третий вариант. Я использую NTEmacs + EmacsW32 + Cygwin. Таким образом, у меня есть собственное приложение Windows с утилитами Unix и оболочкой bash. В make файлах я никогда не использовал M-x whois. Я не могу думать о каких-либо непосредственных недостатках этой установки.

Вот интересные фрагменты моей установки, в основном очень похожие на http://www.emacswiki.org/emacs/NTEmacsWithCygwin:

(setq cygwin-root "c:/cygwin/")
(setq private-bin (concat home-dir "/usr/bin"))
(setq exec-path (cons private-bin exec-path))
(setenv "PATH" (concat private-bin ";" (getenv "PATH")))
; Add Cygwin Emacs stuff
(add-to-load-path "/usr/share/emacs/site-lisp")
; Add Cygwin Info pages
(add-to-list 'Info-default-directory-list
             (concat cygwin-root "usr/share/info/"))

(setq shell-file-name "bash")
(setenv "SHELL" shell-file-name)
(setq explicit-shell-file-name shell-file-name)

(setq w32shell-cygwin-bin "c:\\cygwin\\bin")
(require 'w32shell)
(w32shell-add-emacs)
(w32shell-set-shell "cygwin")

Ответ 8

Как и @justinhj, я использую собственную версию emacs для окон в сочетании с (также родными) портами gnu utils (например, binutils для "строк" ​​и т.д.).

И я всегда использует cygwin в качестве оболочки в Emacs или независимо от Emacs. Таким образом, я сохраняю внешний вид рабочей среды, когда я переключаюсь с Windows на/из Linux/AIX/Solaris.

К сожалению, однако, когда я обновил Emacs с 21.2 до 23.2, Emacs потерял способность распознавать '/cygwin/c' по умолчанию. Я должен исследовать это сейчас, чтобы понять, почему он больше не работает и что я могу сделать, чтобы исправить это. Я только что нашел следующую информацию, и я проверю ее, чтобы узнать, полезно ли это. Кажется странным, что теперь, когда мне нужен внешний пакет для чего-то, что всегда было там по умолчанию:

Я предпочитаю, однако, минимизировать использование дополнительных пакетов. Итак, я только что проверил поведение моего "нового" Emacs + Cygwin, и кажется, что я могу получить доступ к диску C: просто набрав '/'.

Это круто - только один символ (косая черта) вместо /cygdrive/c. Однако оболочка внутри Emacs запрашивает "/cygdrive/c", несколько путающую разницу.

Ответ 9

Я исследовал три варианта: все с оконными (но не X11) версиями Emacs. (Терминал слишком хардкор для меня.) Вот так:

  • XEmacs, который поставляется с Cygwin
  • EmacsW32
  • Стандартные Emacs для Windows

Люди Cygwin хотят направить вас к своим Emacs/XEmacs. В http://cygwin.com/faq/faq-nochunks.html#faq.using.ntemacs они пишут "Обратите внимание, что все это" просто работает ", если вы используете порт Cygwin Emacs или XEmacs из Cygwin Настроить".

Обязательно установите пакет xemacs-sumo в дополнение к xemacs; иначе оболочка M-x не будет работать. Вы можете запускать xemacs без использования X11 как

DISPLAY= xemacs &

Недостатки: 1) Мальчик, это старый Emacs. Я действительно не хотел, чтобы солдат был с этим, когда все остальные используют Emacs 23. 2) Мне было слегка досадно, что для установки требуется целая куча X11 libs, даже если вы не используете X11. 3) Отсутствует cua-mode из коробки.

В EmacsW32 (http://ourcomments.org/Emacs/EmacsW32.html) установлен установщик с одним щелчком мыши, команда M-x cygwin-shell и режим CUA. Но завершение вкладки в оболочке Cygwin использует пути Windows, что сводило меня с ума. С 2008 года порт W32, похоже, активно не улучшается, но они предоставляют установщикам более свежие версии Emacs.

Стандартный Emacs для Windows, по-видимому, лучший выбор. Загрузите из http://ftp.gnu.org/pub/gnu/emacs/windows/, распакуйте и запустите изнутри Cygwin. Затем он забирает домашний каталог и т.д. Вставьте mumbo-jumbo из http://cygwin.com/faq/faq-nochunks.html#faq.using.ntemacs в ~/.emacs. Перезапустите Emacs и запустите оболочку M-x. Все работает так, как ожидалось.

Ответ 10

FWIW, я использую обычные версии GNU Emacs Windows, и я использую Cygwin. У меня никогда не было никаких проблем, но я не много делаю с Cygwin вне Emacs. О, и я использую старую версию Cygwin (со всеми версиями Emacs).

Для настройки я загружаю эти два файла, чтобы:

Ответ 11

Создайте emacs из источника:

- Загрузить последнюю стабильную версию (24.5 на момент написания этой статьи).

-Unzip и cd в папку emacs

- Запустите следующие шаги:

$ ./autogen.sh
$ ./configure --with-w32
$ make
$ make install

-Copy emacs.exe, вручную, из "папки emacs" /src в cygwin/bin

-Run emacs:

$ emacs&