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

  • 相关阅读:
    c#获取指定时区的日期
    项目版本管理
    iis部署网站
    浏览器测试string是否为图片
    网站中挂视频
    百度地图调用
    mvc actionresult返回各种文件
    Coursera机器学习week7 单元测试
    Coursera机器学习week7 笔记
    牛客练习赛12 AB
  • 原文地址:https://www.cnblogs.com/wildmonk3y/p/4798610.html
Copyright © 2011-2022 走看看