Windows 上‘git bash’的编辑器(mingw/msys+mintty 的编辑器)?

Windows 上‘git bash’的编辑器(mingw/msys+mintty 的编辑器)?

我正在为 Windows 使用“git bash”(来自“git for Windows”),它又由 mingw+msys 和 mintty 组成。

此 mingw 安装包含一个可在 mintty 中运行的“vi”编辑器。很好。

问题:是否有其他可以在 mintty 终端仿真窗口中运行的编辑器?

问题是,mintty 终端窗口显然不是真正的 tty,而只是使用 stdin/stdout 与应用程序(编辑器)通信。

Nano 只是说:“不支持重定向。”。Emacs -nw 只是说 emacs:“标准输入不是 tty”

如果任何基本的文本编辑器具有比 vi 更好的用户界面,我就会很满意。

答案1

拾起JFM 的回答对问题如何在 Windows 上的 mintty 下以 CLI 模式运行 emacs?

JFM 指出本机 win32 emacs 想要与 Windows 控制台窗口对话,而不是实际的 tty(所以我们看到的错误消息具有误导性,与它所述的相反的才是问题所在!)

我正在考虑的两个直接选择是

  1. -nw从我的 ~/.gitconfig 文件中删除emacs -nw并只使用弹出的 emacs;或者
  2. 从 Git Bash 交换到正常的 Windows 命令行,emacs -nw设置可以正常工作。

对我来说,第一种选择的优点是 Git bash 终端可以在 Windows 和 Mac(以及 Linux)上使用。对我来说,第二种选择的优点是我可以使用我所有的 Windows 命令行知识。

答案2

答案https://stackoverflow.com/a/38544424/2416627指向正确的方向——使用winptyGit for Windows 附带的命令作为实际编辑器命令的前缀。这适用于 Emacs,可能也适用于 Nano。

但是对于 Emacs,由于 Ctrl-C 组合键的处理存在问题,因此还需要另一种解决方法。

首先,这里介绍如何将 Emacs 配置为文本模式的默认编辑器 – 假设 Emacs 已经通过解压 Zip 分发包安装到C:\Program\Emacs

git config --global core.editor 'winpty /c/Program/Emacs/bin/emacs -nw'

但是,为了能够使用标准 CX CC 快捷方式退出 Emacs,必须在.emacs登录用户的 Windows 用户配置文件位置顶层命名的文件中放入以下行:

(global-set-key [24 pause] (quote save-buffers-kill-terminal))

这同样适用于希望能够使用的任何其他包含 CC 的快捷方式 - 即,必须为它们提供额外的快捷方式映射,其中定义中使用“暂停”而不是 CC。

相关内容