我刚刚安装了Cygwin,却没有BACKSPACE功能,即当我按下Backspace键时,我得到了一个空格。
我一直在尝试在Google上研究此问题,但没有发现任何结论。
stty
命令的输出是什么?
我刚刚安装了Cygwin,却没有BACKSPACE功能,即当我按下Backspace键时,我得到了一个空格。
我一直在尝试在Google上研究此问题,但没有发现任何结论。
stty
命令的输出是什么?
Answers:
在我的情况下,创建空白〜/ .vimrc后,退格键根本无法工作。更改后使其生效
放:
设置bs = 2
在.vimrc中
在http://linux-journal.blogspot.com/2005/04/fix-vim-backspace-doesnt-work.html找到了
为我工作:在Windows命令提示符下,键入
echo export TERM=cygwin >> C:/cygwin/home/YourUser/.bashrc
这会将其添加到中,.bashrc
并且一切可能正常运行!
TERM
环境变量设置为msys
通过Windows环境变量设置,建议在计算器上,以帮助git
在Windows上的问题。只是将其重置为cygwin
in .bashrc
并没有帮助,但是TERM
从Windows设置中删除该条目确实有帮助。感谢您为我指明正确的方向!
我找到了解决上述问题的方法。
只需再次运行Cygwin安装程序,然后重新安装termcap
和terminfo
。如果使用搜索框,则可以快速找到它们。而不是每个都说“保持”,单击它以使其说“重新安装”。您可能需要选中“隐藏已过时”复选框以term
使其出现在搜索中。
我的terminfo文件夹完全丢失。不知道为什么。希望这对某人有帮助。
设置TERM类型时,您在告诉主机在终端窗口中使用哪个TERMCAP进行绘制。大多数* NIX主机不知道什么是“ cygwin”术语类型,因此他们不知道如何进行屏幕上的字符操作,例如插入,删除,滚动,字体更改等。
如果在将telnet或SSH更改为主机之前将CYGWIN中的TERM变量更改为主机,则会得到更好的结果:
在CYGWIN中:
d@test01 ~
$ TERM=ansi;export TERM
$ ssh suntest1
d@suntest1's password:
Sun Microsystems Inc. SunOS 5.8 Generic patch October 2001
d pts/1 test01 Fri Oct 12 00:15 still logged in
$ echo $TERM
ansi
$_
主机现在知道您具有ANSI终端类型,并且可以使用它的ANSI TERMCAP文件来告诉它如何进行通信。
如果您无法使它正常工作,并且除退格键以外的大多数其他东西都可以正常工作,则可以在连接的主机上对“ getty”进行重新编程,以识别所需的内容,这就是方法(这是最古老,最常见和最通用的)解决退格/删除问题的方法):
ssh或telnet到主机,然后在主机中运行stty命令。如果您按下“ BACKSPACE”键并且它没有向后退,那是因为终端可能正在根据TERM类型寻找其他字符。您可以根据需要或根据* NIX的风格,在CLI或$ HOME目录中的.profile,.bashrc或.bash-profile文件中手动设置退格定义,而不必深入研究所有这些内容使用。
因此,如果您按^ H(即CONTROL-H)并且您的密钥备份了,但是您按下了BACKSPACE键,则它不会尝试按以下方式使用stty:
stty erase \*<HIT YOUR BACKSPACE KEY HERE>*[ENTER]
大多数时候,它看起来像这样:
stty erase \^?[ENTER]
'\'表示下一个字符将是不可打印的控制字符并接受它,而不是“解释”它。
一旦按[ENTER],您应该可以按[BACKSPACE]键,并使其退格/删除您键入的内容。
您可以在外壳程序中进行设置。
现在,如果您仍然使用VI,有时翻译将无法进行,您必须在vi中实际键入^ H,但这没关系。
您可能已经说过:
固定删除k [ENTER]
并将字面意义上的“ k”转换为擦除/删除字符。
-D
将TERM
变量更改为cygwin
并添加SET TERM=cygwin
到.bat
文件对我不起作用,但我已将其修复。在这里,我做了什么:在程序包管理器中,我选择安装xterm: X11 terminal emulator
,在安装后,我将文件添加SET TERM=xterm
到.bat
文件中(如上所建议),启动了终端,并在选项 -> 终端菜单中选择Type=xterm
,然后重新启动了终端。退格键开始正常工作!
注意:如果您已经安装了cygwin,请再次运行安装程序并添加xterm软件包。
我在跑:
我同意这里的所有答案。但是,这里有一种更简单的方法:http : //lifepluslinux.blogspot.in/2014/08/backspace-doesnt-work-in-vim-on-cygwin.html
经过2天的时间在线阅读资料。我发现这对我有用。我不知道这种情况是否每个都匹配。但是感谢Yuksel,这对我来说就像一种魅力
问题出在“ termInfo”文件上,他建议的步骤
通过输入CygWin Terminal确认问题是否与终端相关,这应该给出(忽略警告)
less my_session.log
警告:终端功能不完全
通过在CygWin Terminal中键入以下代码,获取与“ TermCap”相关的路径或目录的信息
infocmp -C
你应该得到
infocmp:无法打开terminfo文件/ usr / share / terminfo / 63 / cygwin
或者,您也可能会得到一些诸如“通过infocmp重构...”之类的文字开头的信息。
在CygWin Terminal中运行以下代码以运行诊断以获取有关文件保存路径的更多详细信息
cygcheck -s
应该像下面的文字一样回应您
Cygwin配置诊断
...
C:/ cygwin /系统二进制,noacl
C:/ cygwin / bin / usr / bin系统二进制文件,noacl
C:/ cygwin / lib / usr / lib系统二进制文件,noacl
C:\ cygwin \ etc \ terminfo / usr / share / terminfo系统二进制文件,noacl
cygdrive前缀/ cygdrive用户二进制,noacl,posix = 0,自动
...
C:\ cygwin \ etc \ terminfo / usr / share / terminfo系统二进制文件,noacl
从输出中,您从第三步得到。现在将/ usr / share / terminfo中存在的所有文件和文件夹复制到文件夹C:\ cygwin \ etc \ terminfo-注意:根据安装情况,此文件夹可能与您的文件夹不同
从未遇到过您的问题。尝试安装终端仿真器Mintty(http://code.google.com/p/mintty/)。
可通过Cygwin安装程序使用。Cygwin的最佳终端。