`git add -p`无法使用Ctrl+h键。

4

如果你不知道,在OSX中,默认情况下,ctrl + h与退格键相同。

但在运行git add -p时,如果我输入了错误的按键,ctrl + h并没有执行退格操作,而是添加了^H字符。

有人知道为什么会出现这种意外情况吗?

有人知道是否有办法让它按照我预期的方式工作吗?


是的,我正在使用bash运行git-add程序,这就是我遇到这个问题的地方。 - BananaNeil
1个回答

3
这与Git无关,而是和按键有关。回退键可以选择发送ASCII DEL或控制-H,而控制-H发送控制-H。一些程序——包括大多数编辑器和流行的shell——将这两个键都视为“删除前一个字符”。而另一些则不是。此处有不同的选项。我采用的方法是修改回退键发送控制-H,并设置我的stty设置以将控制-H标记为“删除前一个字符”键。在终端设置的高级选项卡下(可按配置文件更改),您会找到一个名为“删除发送控制-H”的复选框。对于stty设置,只需将`stty erase ^H`一行添加到您的`.login`或`.profile`或其他创建新shell窗口时运行的文件中即可。但要小心,只有在shell是交互式shell时才设置它,您可以通过检查shell的初始提示符(或其他更具特定于shell的方法,这显然取决于您使用的shell)来确定。

请问您能详细说明如何设置“stty”设置,将控制-H标记为“删除前一个字符”键吗? - BananaNeil
好的,尽管这并不明智 :-) 我实际上使用 tcsh,所以我在 .login 中只有这个:stty erase ^H kill ^X status ^T eol2 undef(注意,这里的“控制”字符实际上是拼写为帽子/shift-six,后跟字符)。 实际上,这是在一个“if”子句中,对于缺少 status 和/或 eol2 设置的系统有一些轻微的变体,但对于 MacOSX,这里没有问题。 它是 erase ^H 设置将控制-H 设置为删除前一个字符。 - torek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接