linux.backspace乱码

42 linux.backspace乱码

linux环境sqlplus中使用backspace键出现乱码的解决方法2008-04-30 16:32

在linux环境下使用sqlplus,在回删(backspace)时往往会出现 一串的乱码。出现乱码是由于oracle的sqlplus不使用gnu的readline库造成的。 解决方法有两种:1。要使用回删键(backspace)时,同时按住ctrl键2。设定环境变量在bash下:$ stty erase ^H或者把 stty erase ^H 添加到.bash_profile中。

--

解決SQL*Plus 中退格、方向键等不可使用的问题

SQL*Plus中,退格键Backspace为 ^H,上下右左分別是 ^[[A、^[[B、^[[C、^[[D,更別说上翻下翻上下次記录了。

其实,設置 backspace ^H可以用 stty,在 stty --help中,可以看到一些键的定义,比如erase是刪除一个字符,kill是刪除行,我们定义backspace吧,在你的shell的配置文件(如~/.bashrc)中添加下面行:

 

stty erase ^H

要设置刪除整行也可以

stty kill ^U

这样子,我们按 Ctrl+u,就可以清除整行了~~

 

那么,上下左右方向键、上翻下翻输入等,怎么实现了,Linux下,除了SQL Developer或者 JDeveloper之外,SQL*Plus是终端下相当好用的 Oracle用户端了。

哈,用rlwrap,不管yum、apt更新或者rpm、dpkg安装或者源码编译,这里不介紹。rlwrap本身是个shell,可以运行任何你提供给它的命令包括参数,並且添加历史浏览功能,它是基于GPL发布的。

转自:http://hi.baidu.com/searchsprit/item/0b20b310501d23e55e53b17c

使用方法就是 rlwrap command,...

可以在shell的配置文件中(如~/.bashrc)添加

alias sqlplus=‘rlwrap sqlplus‘

来实现,让sqlplus像 bash一样支持历史记录上下翻等功能。

列举其中一些命令,详细自己看man或者google:

Ctrl+A:ahead,到行的顶端,相当于 Home

Ctrl+E:end,到行的末端,相当于end

Ctrl+B:behind,后退一个字符,相当于left

Ctrl+F:forward,前进一个子放入,相当于right

Ctrl+P:prev.,上一行历史记录,相当于up

Ctrl+N:next.,下一行历史记录,相当于down

Ctrl+U:undo,撤消操作,這行就被清空掉了

Ctrl+W:剪切

Ctrl+Y:粘贴

Ctrl+L:cLear,清屏

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。