如何在控制台中使用CTRL +箭头键跳到下一个或上一个单词?


12

在终端仿真应用程序中,按CTRL+ Left/ Right箭头从一个单词跳到上一个或下一个。在Linux控制台中,无论是文本模式还是帧缓冲模式,都可能具有相同的功能?

在我的配置中,CTRL+箭头键被转换为转义的字符序列且未解释。

Answers:


8

当且仅当终端为Ctrl+ Leftvs 发送不同的转义序列时,才有可能Left。默认情况下,在Linux控制台上(至少在我的机器上)不是这种情况。您可以通过修改键盘映射来做到这一点。要修改的确切文件可能取决于您的分发;在Debian lenny上,要修改的文件是/etc/console/boottime.kmap.gz。你需要像

control keycode 105 = F100
string F100 = "\033O5D"
control keycode 106 = F101
string F101 = "\033O5C"

您也可以选择与X终端仿真器相同的转义序列。要找出控制序列是什么,请在shell中键入Ctrl+ V Ctrl+ Left。这会插入(在我的机器上)转义字符^[O5D所在的位置^[。在键盘映射文件中,\033表示转义字符。

在终端中配置应用程序以解码转义序列是一个单独的问题。


您只是在解释如何获取"\033O5D"代码,而完全省略了从何处获取keycode 105F100代码。此外,我得到^[[1;5B^[[1;5A为CTRL +向下和Ctrl +向上。我应该如何处理1;零件?
Martin Vegter '16

1
@MartinVegter检查现有文件中的密钥代码,或使用该showkey程序。该1;部分与其余部分没有什么不同:"\033[1;5B"依此类推。
吉尔(Gilles)“所以,别再邪恶了”

好的,keycode 105可以使用找到showkey。但是,您从哪里得到的F100
Martin Vegter '16

@MartinVegter选择一个尚未使用的。每个琴弦都有一个不同的音调(我只是在答案中修正了一个错字)。
吉尔(Gilles)'所以


2

您可以将vim设置为命令行编辑器,然后按ESC并跳动vim样式(前进,后退,结束,$,0等)。


-1

我在Debian上有一个空~/.inputrc文件的问题。通过删除此文件解决了该问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.