無法在 Windows 上的 emacs shell 呼叫的 bash 中執行命令

無法在 Windows 上的 emacs shell 呼叫的 bash 中執行命令

我調用了“shell”,它正確運行 cmd.exe 並正確運行。
但是,當我從該 shell 中執行 bash 時,每個命令都會給出錯誤

Microsoft Windows [Version 10.0.22000.739] (c) Microsoft Corporation.  
All rights reserved.  

c:\tools\Emacs\emacs-28.1>bash  
bash  
ll  
bash: line 1: $'ll\r': command not found  

bash: line 2: $'\r': command not found  

我輸入的第一個命令是ll。從錯誤輸出中,我們可以看到“\r”被加到我的“ ll”中。
我輸入的第二個指令是一個簡單的 ENTER。從錯誤輸出中,我們可以看到“\r”被加到我的“ENTER”中。

在 emacs 之外:當我從 cmd.exe shell 呼叫 bash 時,一切都按預期工作。

bash 來自 cygwin 64 位,如果有幫助的話,我使用的是 Windows 11 Professional。 emacs 是為 Windows 本機(不是 cygwin 或 WSL)建構的http://gnu.bardia.tech/gnu/emacs/windows/emacs-28/emacs-28.1-installer.exe

我該如何解決這個問題?

答案1

可能原因:
該終端\r\n在行結尾處發送 CR+LF (" " Windows/DOS/...),
Bash 只需要 LF(例如 Linux 約定)。

看看你是否可以說服 Cygwin-Bash 過濾掉\r- 我不知道是否可能。

其他替代方案;使 emacs 推出更「標準」的終端;例如rxvt來自 Cygwin。

相關內容