Я вызвал "shell", который правильно запускает cmd.exe и работает правильно.
Однако, когда я запускаю 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: когда я вызываю bash из оболочки cmd.exe, все работает так, как и ожидалось.
Bash взят из cygwin 64-bit, если это поможет, а у меня Windows 11 Professional. Emacs был собран для Windows Native (не cygwin или WSL) изhttp://gnu.bardia.tech/gnu/emacs/windows/emacs-28/emacs-28.1-installer.exe.
Как мне это исправить?
решение1
Вероятныйпричина:
Этот терминал отправляет CR+LF (" \r\n
" Windows/DOS/...) в конце строки,
Bash ожидает только LF (например, соглашение Linux).
Попробуйте убедить Cygwin-Bash отфильтровать \r
... Не знаю, возможно ли это.
Другая альтернатива: заставить emacs запустить более «стандартный» терминал; например, rxvt
из Cygwin.