web-dev-qa-db-ja.com

EmacsとCygwinを最適に統合する方法は?

CygwinをWindowsのEmacsと統合する方法はたくさんあります。 EmacsWiki はいくつかのアイデアを示しています。私が見つけたオプションは次のとおりです。

  1. Cygwinに付属のEmacsを使用します。 (必要に応じてcmd.exeにアクセスする方法を見つけます。)
  2. NTEmacsとCygwinを「時々」シェルとして使用します。 (Cygwinを起動する特別なコマンド)
  3. NTEmacsとCygwinを「常に」シェルとして使用します。 (M-x Shellはcygwinを起動します)

「理由」について明確にするため。以下に、EmacsでCygwinを使用したいいくつかの例を示します。

  1. M-x whoisはNTEmacsでは機能しません。
  2. Wanderlust などのパッケージには、Windowsに対応していないMakefileが含まれています。
  3. 何かのためにbashシェルが必要な場合もあります。

それで、Emacs/Cygwinのどのオプションが他の人にとってうまく機能しますか?また、誰かがMSYSの統合に成功しましたか?

42
User1

CygwinでEmacsを使用します。 XEmacs..Emacsではありません。 Cygwinからすべてをインストールし、次を入力してEmacsを実行します。

 XWin -multiwindow 
 export DISPLAY =:0.0 
 emacs&

また、次のようにCドライブ(または他のドライブ)へのリンクを作成すると役立つ場合があります。

ln -s /cygdrive/c /c

私はこれを数ヶ月使用しており、常にうまく機能しています。私は常に問題なくTRAMPやSubversionのような高度な機能を使用しています。セデットなどのすべての高度なパッケージが機能します。

あなたが気付いていなかった場合、私は元のポスターです。私の研究と試みのすべての後、これは働きました、そして、私はとても喜ばれます。良い仕事Cygwin!

また、Emacs内でシェルを使用しないことをお勧めします。 topのようなユーティリティは動作しないようです。代わりに、MinTTYと画面を使用してください。 CygwinはMinTTYで直接sshを提供します(PuTTYは不要です)。最良の部分は、Linuxの知識の多くがWindowsでシームレスに機能することです。

19
User1

最適なソリューションは、cygwin emacs-w32でなければなりません。 win32ネイティブGUIとcygswin POSIXシステムを使用します。つまり、WindowsネイティブGUIプログラムとすべてのcygwinパスがあり、シェルが機能しています。

インストールは非常に簡単です。setup.exe-> emacs-w32。バージョン番号は24.2.93.1になりました。

とても良い。

9
Mingo

4番目の選択肢は、Cygwinの代替端末の1つ(u)rxvt、mintty、xtermでemacsを実行することです。これらはすべてコンソールよりもはるかに優れた端末エミュレーションを提供するため、emacsエクスペリエンスが大幅に向上します。

8
ak.

私は windows上のemacs のネイティブバージョンを gnu utils の(ネイティブ)ポートと組み合わせて使用​​する傾向があります。もの。

次に、bashシェルと欠落しているものにcygwinウィンドウを使用します。

7
justinhj

ルートにcygwinをインストールしました。明示的に警告していますが、悪影響はありませんでした。 (Steve Yeggeからのアドバイスを見つけました)。

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)
)
4
Jonathan Arkell

Cygwinセットアッププログラムから取得するxemacsバージョンが気に入っています。箱から出して動作し、 Alt キーマップ Meta 必要なときにいつでもbashシェルバッファーが存在します。

1
mob

@justinhjと同じように、Windowsでネイティブバージョンのemacsをgnu utilsの(ネイティブの)ポート(たとえば、「strings」のbinutilsなど)と組み合わせて使用​​します。

そして、Ialwaysは、シェルとして、Emacs内で、またはEmacsから独立して、cygwinを使用します。そうすることで、WindowsからLinux/AIX/Solarisに切り替えたり、切り替えたりしたときに、作業環境のルックアンドフィールを保持できます。

しかし残念ながら、Emacsを21.2から23.2にアップグレードすると、Emacsはデフォルトで '/ cygwin/c'を認識できなくなりました。なぜこれが機能しなくなったのか、それを修正するために何ができるのかを調べるために、今これを調査する必要があります。次の情報を見つけたので、これが役立つかどうかを確認します。デフォルトでは常にそこにあったもののために外部パッケージが必要になったのは奇妙に思えます:

ただし、追加のパッケージの使用を最小限に抑えることを好みます。したがって、「新しい」Emacs + Cygwinの動作をさらに確認したところ、「/」と入力するだけでC:ドライブにアクセスできるようになりました。

それはクールです-/ cygdrive/cの代わりに1文字(スラッシュ)だけです。ただし、Emacs内のシェルは、「/ cygdrive/c」というプロンプトを表示しますが、これはやや紛らわしい違いです。

1
Android Eve

3番目のオプション。 NTEmacs + EmacsW32 + Cygwinを使用しています。このようにして、Unixユーティリティとbashシェルを備えたネイティブWindowsアプリケーションができました。メイクファイルは機能します。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")
1

私は3つのオプションを調査しましたが、すべてEmacsのウィンドウ(X11ではありません)バージョンでした。 (端末は私にはハードコアすぎます。)ここに行きます:

  1. Cygwinに付属のXEmacs
  2. EmacsW32
  3. Windows用の標準Emacs

Cygwinの人々は、あなたを彼らのEmacs/XEmacsに導くことを望んでいます。 http://cygwin.com/faq/faq-nochunks.html#faq.using.ntemacs で、Cygwinポートを使用する場合、この「すべてが「機能する」ことに注意してくださいCygwin SetupのEmacsまたはXEmacsの」。

Xemacsに加えて、xemacs-sumoパッケージを必ずインストールしてください。そうしないと、M-x Shellは機能しません。 X11を使用せずにxemacsを起動できます

DISPLAY= xemacs &

欠点:1)少年、これはoldEmacsです。 2)他の人がEmacs 23を使用しているとき、私は本当にこれを使いたくありませんでした。2)X11を実行していない場合でも、インストールにX11ライブラリが必要になるのは少し面倒です。 3)すぐに使用できるcuaモードはありません。

EmacsW32(http://ourcomments.org/Emacs/EmacsW32.html)には、ワンクリックインストーラー、M-x cygwin-Shellコマンド、およびCUAモードがあります。しかし、Cygwin Shellのタブ補完ではWindowsパスを使用しているため、私は夢中になりました。 W32移植版は2008年以降積極的に改善されていないようですが、インストーラーに最新のEmacsバージョンを提供しています。

Windows用の標準のEmacsが最善の策のようです。 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シェルを実行します。すべて正常に機能します。

0
cayhorstmann

FWIW、私は通常のGNU Emacs Windowsリリースを使用し、Cygwinを使用します。問題は一度もありませんでしたが、Emacs以外ではCygwinをあまり使用しません。古いバージョンのCygwin(すべてのバージョンのEmacs)を使用します。

セットアップのために、次の2つのファイルを順番にロードします。

0
Drew

ソースからemacsをビルドします。

- ダウンロード 最新の安定版リリース(この記事の執筆時点では24.5)。

-解凍してemacsフォルダーにcdします

-これらの手順を順番に実行します。

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

-emacs.exeを手動で「emacs folder」/ srcからcygwin/binにコピーします

-emacsを実行します。

$ emacs&

0
mihai