个人工具
登录
查看“UbuntuHelp:HowToReadline/zh”的源代码 - Ubuntu中文
UbuntuHelp
讨论
查看源代码
历史
搜索
导航
首页
最近更改
随机页面
页面分类
帮助
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息
查看“UbuntuHelp:HowToReadline/zh”的源代码
来自Ubuntu中文
←
UbuntuHelp:HowToReadline/zh
跳转至:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{Translation}} {{From|https://help.ubuntu.com/community/HowToReadline}} {{Languages|UbuntuHelp:HowToReadline}} 如果你使用Bash Shell,不难发现它的命令行编辑都是通过Readline库来实现的,也有其他很多程序使用这个库。Ubuntu和Kubuntu提供的Readline配置允许我们自定义一些通用键(例如,编辑命令行时使用左右箭头来控制光标移动),光有这个特性还不够,我们可能需要更多特性来满足自己的要求。尽管Readline自身有一套很完整的键盘绑定,但是它们很难记住,或者有些用起来不太方便。例如,组合键<Alt>-d用来删除当前光标右边的单词就很少有人记得。键入内置命令bind -P可以查看所有键的绑定情况。 本文描述了如何在键盘指令表中新增键和设置组合键,同时附上了下表中相关键设置的Readline配置文件。 {|border="1" cellspacing="0" | 组合键 || 功能描述 |- |Ctrl + Arrow ||一次向前或向后移动一个单词<sup>1</sup> |- |Ctrl + Delete ||删除光标右边的一个单词 |- |Ctrl + Backspace ||删除光标左边的一个单词 |- |Shift + Delete ||删除光标处到行尾间的内容 |- |Shift + Backspace ||删除光标处到行首间的内容 |- | Insert ||替换模式/插入模式切换<sup>2</sup> |} 注<sup>1^:Kubuntu自6.06版已默认使用该组合键,在这为使得例子更加完整,我们也把它列举了进来。<br>注^2</sup>:每次在插入模式中才开始调用Readline,"Insert"键在各次调用间并不相互联系。 由Readline库定义的一系列字符或者数字的组合,称为一个"单词"。"单词"一旦定义就不太可能重新定义,但在Ubuntu中的其他地方可能对它们又有不同的定义。例如,Konsole默认在双击选定单词时将''':@-./_~'''当作单词的一部分(参考 控制台中的'''Settings(设置)/Configure Konsole(配置Konsole)''')。 ==== 键盘映射 ==== 在安装新的Readline配置文件之前,需要对终端模拟器进行设置,使其能对设置的各组合键分别产生相应的字节序。设置时,对Konsole只需要稍做改动,因为默认的'''Xterm(XFree 4.x.x)'''键盘表,<Ctrl><Backspace>和<Shift><Backspace>产生同样的字节序,也就相当于<Backspace>键。 使用 attachment:myKubuntu.keytab 文件能使Konsole产生我们需要的字节序。最简单的安装方法是把这个文件放到`~/.kde/share/apps/konsole`目录中(按照惯例,符号~表示当前用户主目录),相应地,如果将它放在`/usr/share/apps/konsole`目录中,那么这个配置文件将对系统中的所有用户起作用。 使用前面说到的.keytab文件会修改整个键盘设置,而使用 attachment:default.keytab.patch 文件,将其放到相应目录中则可将键盘还原到默设置。这种方式会更合适,因为一旦使用.keytab文件,就会将键盘表映射Konsole中去,导致系统默认的键盘表将不复存在(而使用该patch文件我们可以进行还原)。值得庆幸的是,在`/usr/share/doc/konsole/README.default.Keytab.gz`中还有默认设置的备份。利用它可以创建新的键盘表进行还原,运行以下命令即可: <pre><nowiki> gzip -cd /usr/share/doc/konsole/README.default.Keytab.gz > myKubuntu.keytab patch myKubuntu.keytab default.keytab.patch </nowiki></pre> 在按照上面所说的安装了myKubuntu.keytab文件后,启动一个新的Konsole会话,依次选择'''Settings(设置)/Keyboard(键盘)/XTerm (myKubuntu)''',如果你觉得新的键盘设置很适合自己,那么点击'''Settings(设置)/Save as Default(设为默认)'''将其设成默认。 如果你没有使用Konsole的默认键盘设置,同时又需要修改另一个keytab文件。那么在操作过程中建议你使用这个技巧,通过命令<code><nowiki>konsole --keytab myKubuntu</nowiki></code>来启动Konsole,因为以这种方式启动可以看到Konsole键盘表的出错信息,例如它可能会提示你某个键已经被绑定。要检查键盘绑定情况,启动Vim,按i进入插入模式,在按下你要检验的组合键后接着按<Ctrl>-v即可。关于键盘表文件的具体细节请参见`/usr/share/doc/konsole/README.KeyTab`。 [特别注意:如无特别描述,文中的终端均指GNOME终端模拟器,Linux控制台或者xterm。] ==== Readline配置==== 在完成终端模拟器配置成可执行自定义的字节序后,接下来配置Readline。下载 attachment:inputrc 文件将其命名成`.inputrc`放到自己主目录,或者替换`/etc/inputrc`文件即可。 与前面类似,使用patch文件方式安装可能比采用完全替换的安装方式更适合你。下载 attachment:inputrc.patch 文件到/tmp目录,切换到root权限然后执行下面的命令: <pre><nowiki> patch --backup /etc/inputrc /tmp/inputrc.patch </nowiki></pre> 这样将生成一个备份文件,很可能是调用了/etc/inputrc.orig(具体请参考`path(1)`)。 请记得在测试前重新启动一个会话,如果有必要的话,更改键盘表。 ===总结 === 通过定制Readline配置文件,你已经修改了终端模拟器,可以让Konsole执行自定义的字节序。到此为止,键盘表中自定义的按键会跟系统中的Home,End等键一样在Bash和其他命令行程序中生效。 === 相关页面=== [http://cnswww.cns.cwru.edu/php/chet/readline/rluserman.html GNU Readline Library] [http://www.gnu.org/software/bash/manual/bashref.html Bash Reference Manual] [http://www.white.nu/~jwhite/keymapping/ Andrew's (barebones) guide to terminals and keymappings] ---- [[category:CategoryDocumentation]] [[category:CategoryCleanup]] [[category:UbuntuHelp]]
该页面使用的模板:
模板:From
(
查看源代码
)
模板:Languages
(
查看源代码
)(受保护)
模板:Languages/Lang
(
查看源代码
)(受保护)
模板:Translation
(
查看源代码
)
返回至
UbuntuHelp:HowToReadline/zh
。