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,清屏