我調用了“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。