无法在 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。从错误输出中,我们可以看到我的“ENTER”后面添加了一个“\r”。

emacs 之外:当我从 cmd.exe shell 调用 bash 时,一切都按预期工作。

bash 来自 cygwin 64 位,如果这有帮助的话,我使用的是 Windows 11 专业版。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。

相关内容