Backspace不能删除字符而只是显示^H问题

问题描述:在tclsh中,当试图用Backspace键删除字符时,并没有删除光标前一个字符,而是显示^H。
解决办法:键入”stty erase ^H”命令即可。
问题分析:这个问题并不是tclsh特有的,很多程序都可能存在这个问题。根源在于tclsh程序做行编辑之类操作,并不是使用readline库,而是依赖于终端。因此我们可以通过stty对终端重新配置来解决这个问题。当使用readline时,终端处于raw模式,readline自己来解释backspace、delete、箭头等特殊字符;当不使用readline时,终端处于cooked模式,由终端驱动来负责解释特殊字符。

转自:http://xugaofei.com/testing/117

Q: Backspace键并未删除光标左面那个字符,仅仅显示^H,而DEL键完成了删除操作

A: Sun Microsystems 2001-03-08 执行"stty -a"将看到"erase = ^?",表示此时DEL键对应删除操作。

如果正在使用xterm,可以用"tset"命令设置控制字符对应的操作。

其他窗口中,假设目前使用/sbin/sh,尝试 $ stty erase ^H 这里^H的输入是Ctrl-H,某些时候可能需要Ctrl-V、Ctrl-H输入,还可以尝试 $ stty erase "^h" $ stty erase "^H" (大小写不敏感) 这里输入"^H",就是两个字符,一个^,一个H。

同样,如果想恢复到DEL删除 $ stty erase ^? 这里^?的输入是DEL,某些时候可能需要Ctrl-V、DEL输入,还可以尝试 $ stty erase "^?" 这里输入"^?",就是两个字符,一个^,一个?。

为了永久保留这个设置,在所使用的shell初始化文件中增加设置命令,比如c shell 的".cshrc",其他shell的".login"。

时间: 2024-11-05 17:22:50

Backspace不能删除字符而只是显示^H问题的相关文章

linux 终端 backspace不能删除字符

http://blog.chinaunix.net/uid-2282111-id-2113293.html 在linux/unix平台的经常使用scanf从键盘获取字符,输出字符后按Backspace键删除时,会出现^H,这对习惯了按Backspace键删除的用户来说,感觉非常别扭,虽然可以通过Ctrl+Backspace组合键实现删除功能 可通过stty命令修改终端配置来实现Backspace删除功能.如下: QUOTE: [[email protected] ~]$ id uid=501(o

Vim插入模式下backspace按键无法删除字符的问题

最近使用某个服务器编辑文件时,快捷键i进入插入模式后 下方不出现insert模式,却可以插入字符 但是backspace按键不能删除字符了,记录下解决办法: 1.在命令模式下: set nocompatible 2.设置backspace的工作方式: set backspace=indent,eol,start 原文地址:https://www.cnblogs.com/enumx/p/12308088.html

CSS自动截断表格内的长字符 以省略号显示

CSS自动截断表格内的长字符,以省略号显示,大家可能在一些网站看到过这样的效果,目的是让表格或布局更美观一些,但是不利于阅读,如果您可以能该属性加上title或链接的话那就利于网站体验了,您说是吗? <!DOCTYPE> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>上谷战

Telnet客户端连接服务器,看不见字符,只显示横线

Telnet 窗口看不见字符,只显示小横线 在用telnet连接tomcat服务器的 时候,窗口中不显示字符,显示成一个一个的横线 解决办法: 按住“Ctrl+]” 回车解决问题

tr转换或删除字符

字符处理命令:tr —— 转换或删除字符 逐个字符处理而不是处理单词的tr [OPTION]... SET1 [SET2]    -d: 删除出现在字符集中的所有字符 tr ab AB

android EditText获取光标位置并安插字符删除字符

android EditText获取光标位置并插入字符删除字符1.获取光标位置int index = editText.getSelectionStart(); 2.在光标处插入字符int index = editText.getSelectionStart();Editable editable = editText.getText();editable.insert(index, "aaaa");3.删除光标前字符int index = editText.getSelectionS

1161: 零起点学算法68——删除字符(未AC)

1161: 零起点学算法68--删除字符 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 1412  Accepted: 479[Submit][Status][Web Board] Description 从键盘输入任意一个字符串和一个字符,要求从该字符串中删除所有该字符. Input 输入有多组测试数据. 每组两行,第一行是字符串(字符串至少还有一个字符,不多于100个),第二行是一个字符 Ou

删除字符,用外部函数

题目:一个字符串,内有若干字符,输入一个字符,要求将字符串中该字符删除.用外部函数实现. 编程环境:win7,vs2013. 建立只包含一个函数的四个文件:main函数.输入字符串函数.删除字符函数和输出字符串的函数. 四个文件里的程序如下: 1.主函数.运行会一闪而过,之后直接退出,可以加上"system("pause")",同时也要加上库文件"stdlib.h". 1 #include<stdio.h> 2 #include<

【剑指offer】删除字符也出现在一个字符串

转载请注明出处:http://blog.csdn.net/ns_code/article/details/27110873 剑指offer上的字符串相关题目. 题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符.比如.输入"They are students."和"aeiou",则删除之后的第一个字符串变成"Thy r stdnts.". 这里主要要分析两个方面: 1.怎样推断那些字符是须要删除的字符. 同非常多字符串问题一样.能够