zoukankan      html  css  js  c++  java
  • Backspace不能删除字符而只是显示^H问题

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

     
     
     
     

    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"。

  • 相关阅读:
    Reinforcement Learning Qlearning 算法学习3 AI
    2012年末工作中遇到的问题总结及感悟
    对JMS的一些认识
    readme
    数据库表扩展字段设计思路
    对网络安全性和apache shiro的一些认识
    JDK版本的了解
    下拉框“数据字典”设计
    缓存学习总结
    apache commons包简介
  • 原文地址:https://www.cnblogs.com/wildmonk3y/p/4798610.html
Copyright © 2011-2022 走看看