Я использую «git bash» для Windows (от «git для Windows»), который в свою очередь состоит из mingw+msys и mintty.
Эта установка mingw содержит редактор 'vi', который работает в mintty. Хорошо.
Вопрос: Существуют ли другие редакторы, работающие в окне эмуляции терминала Mintty?
Проблема в том, что, по-видимому, окно терминала mintty не является настоящим tty, а просто использует stdin/stdout для взаимодействия с приложением (редактором).
Nano просто говорит: «Перенаправление не поддерживается». Emacs -nw просто говорит emacs: «стандартный ввод не является tty»
Я был бы рад любому базовому текстовому редактору с лучшим пользовательским интерфейсом, чем vi.
решение1
ПодхватываяОтвет JFMна вопросКак запустить emacs в режиме CLI под mintty в Windows?
JFM указывает, что собственный win32 emacs хочет взаимодействовать с окном консоли Windows, а не с реальным tty (поэтому сообщение об ошибке, которое мы видим, вводит в заблуждение, проблема заключается в обратном тому, что в нем говорится!)
Два варианта, которые я сейчас обдумываю, это
- Удалите
-nw
изemacs -nw
моего файла ~/.gitconfig и просто живите с всплывающим окном emacs; или - Переключитесь с Git Bash на обычную командную строку Windows, где
emacs -nw
настройка работает нормально.
Преимущество первого варианта для меня в том, что терминал Git bash доступен на Windows и Mac (и Linux). Преимущество второго варианта для меня в том, что я могу использовать все свои знания командной строки Windows.
решение2
Ответhttps://stackoverflow.com/a/38544424/2416627указывает в правильном направлении – используйте winpty
команду, которая распространяется с Git для Windows, как префикс для фактической команды редактора. Это работает с Emacs и, предположительно, также с Nano.
Однако для Emacs также необходим другой обходной путь из-за проблемы с обработкой комбинации клавиш Ctrl-C.
Во-первых, вот как настроить Emacs в текстовом режиме в качестве редактора по умолчанию — предполагая, что Emacs был установлен путем распаковки Zip-дистрибутива в C:\Program\Emacs
:
git config --global core.editor 'winpty /c/Program/Emacs/bin/emacs -nw'
Однако для того, чтобы иметь возможность выйти из Emacs с помощью стандартного сочетания клавиш CX CC, необходимо поместить следующую строку в файл, названный .emacs
на верхнем уровне расположения профиля пользователя Windows вошедшего в систему пользователя:
(global-set-key [24 pause] (quote save-buffers-kill-terminal))
То же самое относится к любым другим сочетаниям клавиш, содержащим CC, которые вы хотите использовать, т. е. им должны быть предоставлены дополнительные сопоставления сочетаний клавиш, где в определении вместо CC используется «pause».