Soru Windows'da Emacs'te Terminal - Hata mesajı: “Spawning child process; geçersiz argüman"


Ben bir başlangıç ​​yapmaya çalışıyorum cmd Windows'da Emacs 23.2 (en son sürüm) terminali.

Göre Manuel, Emacs yazarak terminal modunda (terminal için yeni bir tampon başlayarak) girebilirim M-x term.

Bunu yaptığımda, şunu almak istiyorum:

Run program: path_to-emacs/bin/cmdproxy.exe

Yazdığımda RET, Minibuffer'da aşağıdaki hata mesajını alıyorum:

Spaning child process: invalid argument

Herhangi bir fikir nasıl çalışır?

Teşekkürler,


34
2017-12-26 21:10


Menşei


Aynı sorunu burada yaşıyor :( - dolzenko
Burada aynı sorun var, ama 'C: / Program Files (x86) /Git/bin/bash.exe' ile (Yani, "gerçek bir kabuk kullanın" sorunun olması muhtemel değildir) - Arafangion
Ayrıca bakınız stackoverflow.com/questions/20263012 - Neil Strickland


Cevaplar:


Aşağıdaki yapılmalıdır:

  • M-:(make-comint-in-buffer "cmd" nil "cmd" nil)

  • M-Xeshell

  • M-Xkabuk

Hepsinin hem artıları hem de eksileri var. Bu yüzden size en uygun olanı seçin.


8
2018-06-28 17:06



Hayır. Neden olduğu hakkında hiçbir fikrim yok, ama «kabuk» MinGW'nin gdb'si garip bir yanlış davranışa sahip. Örneğin. Altında çalışan bir uygulama, bir şey girdiğimde geçersiz argümanlar hakkında şikayet, bir baskı ifadeleri yazdırmaz. Düz bir terminalde çalışan gdb'nin hiç problemi yok, bu yüzden Emacs'ın konusu budur. Her iki mod için de aynı gdb ve gud-gdb. - Hi-Angel
Sahip olduğum problemi buldum. Burada yazdığı şey, birisine yardım etmesi ümididir: Windows® terminali kendi kodlamasına sahiptir (chcp komutunda bulunabilir, farklı olabilir, yerel ayarlara bağlıdır) ve gdb ile çalışmak için arabellek kodlamasını ayarlamak gerekir bir sisteme uyum sağlamak - Hi-Angel


Çalışmaya çalışırken aynı hatayı aldım M-x compile. Aşağıdakileri ekledim .emacs dosya ve sorunu çözdü:

;; Make sure that the bash executable can be found
(setq explicit-shell-file-name "C:/cygwin/bin/bash.exe")
(setq shell-file-name explicit-shell-file-name)
(add-to-list 'exec-path "C:/cygwin/bin")

Açıkçası, bu çözüm sadece Cygwin'in kurulu olması durumunda çalışacaktır, ancak eğer Windows üzerinde Emacs kullanıyorsanız, çoğu Emacs komutu cygwin tarafından sağlanan komut satırı araçlarından faydalanabileceğinden genellikle en az Cygwin yüklemesine değerdir (M-x compile benim durumumda).


6
2017-09-25 13:35





Aynı problem vardı.

Ben procmon koştum ve Emacs'in bulmak istediğini keşfettim c:\bin\sh bazı formlarda (sh.exe, sh.bat, sh.cmd, vb).
Android hata ayıklama kabuk ile term modunu kullanmak istediğimden beri c:\bin\sh.bat içeriği "adb kabuk" ile ve bazı garip giriş gecikme olsa da, iyi çalıştı.


3
2018-06-28 16:55



Bu biraz baktım ve dönem modu, yürütülebilir dosyalar için bazı kodlanmış yollar var, bu yüzden Windows bazı garip yerlerde görünüyor. - Alan Third


Kullanmak isterseniz term veya ansi-term Win32 Emacs ile Windows üzerinde cmd.exe veya Cygwin bash ile, bu projeye bir göz atın:

fakecygpty

Win 10'da benim için çok güzel çalışıyor.


3
2018-06-24 15:24





Deneyin M-x cmd-shellyerine. Kullanmanızı öneririm EmacsW32 En iyi sonuç için.


1
2017-12-26 21:15



Teşekkürler İsmail, EmacsW32'de M-x kabuğunu ve EmacsW32'deki M-x cmd-kabuğunu kesinlikle kullanabilirim, ancak bazı etkileşimli konsol programlarının düzgün çalışmasını sağlamak için gerçek bir terminal taklit etmek isterim. Diğer bir deyişle, M-x terimini çalışmak istiyorum. - Amelio Vazquez-Reina
O zaman, cygwin veya msys'den bash gibi gerçek bir kabuğa ihtiyacınız var. Windows'dan cmd.exe bir UNIXy kabuğu değil. - ismail
Msys bash, ama ("bash" terimi) veya ("tam-yol-to-bash.exe" terimi) terim var, her ikisi de hala geçersiz argümandan şikayetçi .. ?? - Jimmy Hoffa