Linux系统中SQLPlus不能使用Backspace的解决办法

来源:互联网 发布:转转跟咸鱼 知乎 编辑:程序博客网 时间:2024/06/06 09:12

    远程Linux/Unix系统进入sqlplus下输入sql语句后,按backspace键退格的时候会出现乱码^H,对于该问题可以通过其他方式来实现退格功能,也可以设置或者修改相应的参数来解决该问题,具体的方法如下:

方法一:

    直接使用delete键来代替退格键;

方法二:

    使用ctrl+backspace键来代替退格键;

方法三:

    在运行sqlplus之前运行stty erase ^h

[oracle@qbpt bin]$ stty erase ^h

    若要恢复Ctrl+Backspace组合键删除功能,可执行以下命令:

[oracle@qbpt bin]$  stty erase ^?

    同时可通过stty -a查看所有的终端设置:

[oracle@qbpt bin]$ stty -a

speed 38400 baud; rows 57; columns 197; line = 0;

intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O;

min = 1; time = 0;

-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -cdtrdsr

-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8

opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0

isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

方法四:

       在进入到sqlplus后,可以通过vi编辑器相应的Sql语句进行修改相应的命令为ed或者edit

SQL> select user from dual;   

USER

------------------------------

SCOTT

SQL> ed; 

SQL> edit;

    如果没有出现vi界面,只是出现类似于“Wrote file afiedt.buf 24”的内容则需要输入q,然后按回车退到SQL>界面,然后执行define _editor=vi命令修改编辑器为VI编辑器;

SQL> ed

Wrote file afiedt.buf

24

SQL> define _editor=vi

SQL> ed

方法五:

       直接将配置写到配置文件profile中,具体的内容为

stty erase ^h

PS1="\u@\h $ "

export EDITOR=vi

方法六:

       如果使用CRT工具远程Linux系统可以通过修改配置来解决Backspace键不能正常退格的问题,在选项->会话选项->终端->映射键->其他键的对话框中勾选Backspace发送delete前的单选框,然后点击“确定”按钮保存即可。

 

 

 

 

0 0
原创粉丝点击