进入 sqlplus 时键盘失灵真的很烦人

进入 sqlplus 时键盘失灵真的很烦人

在使用 bash 时,我经常使用 ^A 和 ^E 键来转到行首和行末,使用箭头键来在不删除字符的情况下从一个字符移动到另一个字符。时不时地,当我输入某些工具时,我的热键就会完全失效,无法正常工作。我的键盘被重新映射,删除键变成了退格键,^W 现在会删除单词,我无法在命令行中更正任何内容,因为几乎每个用于编辑输入命令的键都会将垃圾字符放到终端上。在 UNIX 终端中输入密码或 SQLPlus 时,我经常会发生这种情况。

我甚至不知道这是 bash 还是别的什么,但有人告诉我看一下这个命令:

  $ stty -a
  speed 38400 baud; rows 37; columns 100; line = 0;
  intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = ^Z;
  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
  -ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel

  opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
  isig icanon iexten echo -echoe -echok -echonl -noflsh -tostop -echoctl -echoke

无论如何,我不知道我在这里看到的是什么,但我确实认出了某些快捷键 ^W 和 ^U。我该如何重新定义事物,让这个奇怪的终端设置像常规 bash 一样运行

答案1

您所描述的大部分内容都是由 readline 提供的,因此如果您使用的实用程序不支持 readline 或类似程序,那么您就没那么幸运了。终端仅解释一组非常有限的转义码,主要是用于删除前一个单词 (^W) 和删除整行 (^U) 的转义码,其余的 (^A、^E、...) 则由应用程序来完成。

答案2

我认为您想要包reset中的命令ncurses

如果您指的是在 内部sqlplus,那么另一个答案是正确的:您无能为力,因为sqlplus是一个古老的 并且不支持readline

答案3

您可以使用右包裹

不幸的是,如果你在客户现场,你无法编译它。但你可以点击此处下载二进制版本

玩得开心!

相关内容