特殊:Badtitle/NS100:HowToReadline/zh:修订间差异
Dbzhang800(留言 | 贡献) |
小无编辑摘要 |
||
(未显示2个用户的2个中间版本) | |||
第1行: | 第1行: | ||
{{Translation}} {{From|https://help.ubuntu.com/community/HowToReadline}} {{Languages|UbuntuHelp:HowToReadline}} | |||
<br> 如果你使用Bash Shell,不难发现它的命令行编辑都是通过Readline库来实现的,也有其他很多程序使用这个库。Ubuntu和Kubuntu提供的Readline配置允许你使用一些常用键来移动光标或编辑命令行,例如,左右箭头控制键。除此之外,你可能还想要一些其他特性。实际上,Readline自身有一套丰富的键盘绑定,但是它们可能很难记住,或者有些用起来不方便。例如,Alt+d键用来删除当前光标右边的单词。键入bash内置命令bind -P可以查看所有键的绑定情况。 | |||
本文描述了如何在键盘指令表中新增键和设置组合键,同时附上了下表中相关键设置的Readline配置文件。 | |||
{| cellspacing="0" border="1" | |||
{| | |||
|- | |- | ||
| | | 组合键 | ||
| 功能描述 | |||
|- | |- | ||
|Ctrl + Arrow | | Ctrl + Arrow | ||
| 一次向前或向后移动一个单词<sup>1</sup> | |||
|- | |- | ||
|Ctrl + Delete | | Ctrl + Delete | ||
| 删除光标右边的一个单词 | |||
|- | |- | ||
|Ctrl + Backspace | | Ctrl + Backspace | ||
| 删除光标左边的一个单词 | |||
|- | |- | ||
|Shift + Delete | | Shift + Delete | ||
| 删除光标处到行尾间的内容 | |||
|- | |- | ||
|Shift + Backspace | | Shift + Backspace | ||
| 删除光标处到行首间的内容 | |||
|- | |- | ||
| Insert | | Insert | ||
| 替换模式/插入模式切换<sup>2</sup> | |||
|} | |} | ||
<br> 注1:Kubuntu自6.06版已默认使用该组合键,在这为使得例子更加完整,我们也把它列举了进来。<br>注2:每次在插入模式中才开始调用Readline,"Insert"键在各次调用间并不相互联系。 | |||
由Readline库定义的一系列字符或者数字的组合,称为一个"单词"。"单词"一旦定义就不太可能重新定义,但在Ubuntu中的其他地方可能对它们又有不同的定义。例如,Konsole默认在双击选定单词时将''':@-./_~'''当作单词的一部分(参考 控制台中的'''Settings(设置)/Configure Konsole(配置Konsole)''')。 | 由Readline库定义的一系列字符或者数字的组合,称为一个"单词"。"单词"一旦定义就不太可能重新定义,但在Ubuntu中的其他地方可能对它们又有不同的定义。例如,Konsole默认在双击选定单词时将''':@-./_~'''当作单词的一部分(参考 控制台中的'''Settings(设置)/Configure Konsole(配置Konsole)''')。 | ||
==== 键盘映射 ==== | |||
==== | |||
在安装新的Readline配置文件之前,需要对终端模拟器进行设置,使其能对设置的各组合键分别产生相应的字节序。设置时,对Konsole只需要稍做改动,因为默认的'''Xterm(XFree 4.x.x)'''键盘表,<Ctrl><Backspace>和<Shift><Backspace>产生同样的字节序,也就相当于<Backspace>键。 | |||
在安装新的Readline配置文件之前,需要对终端模拟器进行设置,使其能对设置的各组合键分别产生相应的字节序。设置时,对Konsole只需要稍做改动,因为默认的'''Xterm(XFree 4.x.x)'''键盘表, | |||
使用 attachment:myKubuntu.keytab 文件能使Konsole产生我们需要的字节序。最简单的安装方法是把这个文件放到`~/.kde/share/apps/konsole`目录中(按照惯例,符号~表示当前用户主目录),相应地,如果将它放在`/usr/share/apps/konsole`目录中,那么这个配置文件将对系统中的所有用户起作用。 | 使用 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`中还有默认设置的备份。利用它可以创建新的键盘表进行还原,运行以下命令即可: | 使用前面说到的.keytab文件会修改整个键盘设置,而使用 attachment:default.keytab.patch 文件,将其放到相应目录中则可将键盘还原到默设置。这种方式会更合适,因为一旦使用.keytab文件,就会将键盘表映射Konsole中去,导致系统默认的键盘表将不复存在(而使用该patch文件我们可以进行还原)。值得庆幸的是,在`/usr/share/doc/konsole/README.default.Keytab.gz`中还有默认设置的备份。利用它可以创建新的键盘表进行还原,运行以下命令即可: | ||
<pre>gzip -cd /usr/share/doc/konsole/README.default.Keytab.gz > myKubuntu.keytab | |||
<pre> | |||
gzip -cd /usr/share/doc/konsole/README.default.Keytab.gz | |||
patch myKubuntu.keytab default.keytab.patch | patch myKubuntu.keytab default.keytab.patch | ||
</pre> | |||
在按照上面所说的安装了myKubuntu.keytab文件后,启动一个新的Konsole会话,依次选择'''Settings(设置)/Keyboard(键盘)/XTerm (myKubuntu)''',如果你觉得新的键盘设置很适合自己,那么点击'''Settings(设置)/Save as Default(设为默认)'''将其设成默认。 | 在按照上面所说的安装了myKubuntu.keytab文件后,启动一个新的Konsole会话,依次选择'''Settings(设置)/Keyboard(键盘)/XTerm (myKubuntu)''',如果你觉得新的键盘设置很适合自己,那么点击'''Settings(设置)/Save as Default(设为默认)'''将其设成默认。 | ||
如果你没有使用Konsole的默认键盘设置,同时又需要修改另一个keytab文件。那么在操作过程中建议你使用这个技巧,通过命令<code><nowiki>konsole --keytab myKubuntu</nowiki></code>来启动Konsole,因为以这种方式启动可以看到Konsole键盘表的出错信息,例如它可能会提示你某个键已经被绑定。要检查键盘绑定情况,启动Vim,按i进入插入模式,在按下你要检验的组合键后接着按 | 如果你没有使用Konsole的默认键盘设置,同时又需要修改另一个keytab文件。那么在操作过程中建议你使用这个技巧,通过命令<code><nowiki>konsole --keytab myKubuntu</nowiki></code>来启动Konsole,因为以这种方式启动可以看到Konsole键盘表的出错信息,例如它可能会提示你某个键已经被绑定。要检查键盘绑定情况,启动Vim,按i进入插入模式,在按下你要检验的组合键后接着按<Ctrl>-v即可。关于键盘表文件的具体细节请参见`/usr/share/doc/konsole/README.KeyTab`。 | ||
[特别注意:如无特别描述,文中的终端均指GNOME终端模拟器,Linux控制台或者xterm。] | [特别注意:如无特别描述,文中的终端均指GNOME终端模拟器,Linux控制台或者xterm。] | ||
==== Readline配置 ==== | |||
==== | |||
在完成终端模拟器配置成可执行自定义的字节序后,接下来配置Readline。下载 attachment:inputrc 文件将其命名成`.inputrc`放到自己主目录,或者替换`/etc/inputrc`文件即可。 | 在完成终端模拟器配置成可执行自定义的字节序后,接下来配置Readline。下载 attachment:inputrc 文件将其命名成`.inputrc`放到自己主目录,或者替换`/etc/inputrc`文件即可。 | ||
与前面类似,使用patch文件方式安装可能比采用完全替换的安装方式更适合你。下载 attachment:inputrc.patch 文件到/tmp目录,切换到root权限然后执行下面的命令: | 与前面类似,使用patch文件方式安装可能比采用完全替换的安装方式更适合你。下载 attachment:inputrc.patch 文件到/tmp目录,切换到root权限然后执行下面的命令: | ||
<pre>patch --backup /etc/inputrc /tmp/inputrc.patch | |||
<pre> | </pre> | ||
patch --backup /etc/inputrc /tmp/inputrc.patch | |||
这样将生成一个备份文件,很可能是调用了/etc/inputrc.orig(具体请参考`path(1)`)。 | 这样将生成一个备份文件,很可能是调用了/etc/inputrc.orig(具体请参考`path(1)`)。 | ||
请记得在测试前重新启动一个会话,如果有必要的话,更改键盘表。 | 请记得在测试前重新启动一个会话,如果有必要的话,更改键盘表。 | ||
=== 总结 === | |||
=== | |||
通过定制Readline配置文件,你已经修改了终端模拟器,可以让Konsole执行自定义的字节序。到此为止,键盘表中自定义的按键会跟系统中的Home,End等键一样在Bash和其他命令行程序中生效。 | 通过定制Readline配置文件,你已经修改了终端模拟器,可以让Konsole执行自定义的字节序。到此为止,键盘表中自定义的按键会跟系统中的Home,End等键一样在Bash和其他命令行程序中生效。 | ||
=== 相关页面 === | |||
=== | |||
[http://cnswww.cns.cwru.edu/php/chet/readline/rluserman.html GNU Readline Library] | [http://cnswww.cns.cwru.edu/php/chet/readline/rluserman.html GNU Readline Library] | ||
第137行: | 第73行: | ||
---- | ---- | ||
[[Category:CategoryDocumentation]] [[Category:CategoryCleanup]] [[Category:UbuntuHelp]] |
2008年4月23日 (三) 00:51的最新版本
![]() |
文章出处: |
{{#if: | {{{2}}} | https://help.ubuntu.com/community/HowToReadline }} |
![]() |
点击翻译: |
English {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/af | • {{#if: UbuntuHelp:HowToReadline|Afrikaans| [[::HowToReadline/zh/af|Afrikaans]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/ar | • {{#if: UbuntuHelp:HowToReadline|العربية| [[::HowToReadline/zh/ar|العربية]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/az | • {{#if: UbuntuHelp:HowToReadline|azərbaycanca| [[::HowToReadline/zh/az|azərbaycanca]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/bcc | • {{#if: UbuntuHelp:HowToReadline|جهلسری بلوچی| [[::HowToReadline/zh/bcc|جهلسری بلوچی]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/bg | • {{#if: UbuntuHelp:HowToReadline|български| [[::HowToReadline/zh/bg|български]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/br | • {{#if: UbuntuHelp:HowToReadline|brezhoneg| [[::HowToReadline/zh/br|brezhoneg]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/ca | • {{#if: UbuntuHelp:HowToReadline|català| [[::HowToReadline/zh/ca|català]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/cs | • {{#if: UbuntuHelp:HowToReadline|čeština| [[::HowToReadline/zh/cs|čeština]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/de | • {{#if: UbuntuHelp:HowToReadline|Deutsch| [[::HowToReadline/zh/de|Deutsch]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/el | • {{#if: UbuntuHelp:HowToReadline|Ελληνικά| [[::HowToReadline/zh/el|Ελληνικά]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/es | • {{#if: UbuntuHelp:HowToReadline|español| [[::HowToReadline/zh/es|español]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/fa | • {{#if: UbuntuHelp:HowToReadline|فارسی| [[::HowToReadline/zh/fa|فارسی]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/fi | • {{#if: UbuntuHelp:HowToReadline|suomi| [[::HowToReadline/zh/fi|suomi]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/fr | • {{#if: UbuntuHelp:HowToReadline|français| [[::HowToReadline/zh/fr|français]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/gu | • {{#if: UbuntuHelp:HowToReadline|ગુજરાતી| [[::HowToReadline/zh/gu|ગુજરાતી]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/he | • {{#if: UbuntuHelp:HowToReadline|עברית| [[::HowToReadline/zh/he|עברית]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/hu | • {{#if: UbuntuHelp:HowToReadline|magyar| [[::HowToReadline/zh/hu|magyar]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/id | • {{#if: UbuntuHelp:HowToReadline|Bahasa Indonesia| [[::HowToReadline/zh/id|Bahasa Indonesia]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/it | • {{#if: UbuntuHelp:HowToReadline|italiano| [[::HowToReadline/zh/it|italiano]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/ja | • {{#if: UbuntuHelp:HowToReadline|日本語| [[::HowToReadline/zh/ja|日本語]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/ko | • {{#if: UbuntuHelp:HowToReadline|한국어| [[::HowToReadline/zh/ko|한국어]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/ksh | • {{#if: UbuntuHelp:HowToReadline|Ripoarisch| [[::HowToReadline/zh/ksh|Ripoarisch]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/mr | • {{#if: UbuntuHelp:HowToReadline|मराठी| [[::HowToReadline/zh/mr|मराठी]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/ms | • {{#if: UbuntuHelp:HowToReadline|Bahasa Melayu| [[::HowToReadline/zh/ms|Bahasa Melayu]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/nl | • {{#if: UbuntuHelp:HowToReadline|Nederlands| [[::HowToReadline/zh/nl|Nederlands]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/no | • {{#if: UbuntuHelp:HowToReadline|norsk| [[::HowToReadline/zh/no|norsk]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/oc | • {{#if: UbuntuHelp:HowToReadline|occitan| [[::HowToReadline/zh/oc|occitan]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/pl | • {{#if: UbuntuHelp:HowToReadline|polski| [[::HowToReadline/zh/pl|polski]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/pt | • {{#if: UbuntuHelp:HowToReadline|português| [[::HowToReadline/zh/pt|português]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/ro | • {{#if: UbuntuHelp:HowToReadline|română| [[::HowToReadline/zh/ro|română]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/ru | • {{#if: UbuntuHelp:HowToReadline|русский| [[::HowToReadline/zh/ru|русский]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/si | • {{#if: UbuntuHelp:HowToReadline|සිංහල| [[::HowToReadline/zh/si|සිංහල]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/sq | • {{#if: UbuntuHelp:HowToReadline|shqip| [[::HowToReadline/zh/sq|shqip]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/sr | • {{#if: UbuntuHelp:HowToReadline|српски / srpski| [[::HowToReadline/zh/sr|српски / srpski]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/sv | • {{#if: UbuntuHelp:HowToReadline|svenska| [[::HowToReadline/zh/sv|svenska]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/th | • {{#if: UbuntuHelp:HowToReadline|ไทย| [[::HowToReadline/zh/th|ไทย]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/tr | • {{#if: UbuntuHelp:HowToReadline|Türkçe| [[::HowToReadline/zh/tr|Türkçe]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/vi | • {{#if: UbuntuHelp:HowToReadline|Tiếng Việt| [[::HowToReadline/zh/vi|Tiếng Việt]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/yue | • {{#if: UbuntuHelp:HowToReadline|粵語| [[::HowToReadline/zh/yue|粵語]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/zh | • {{#if: UbuntuHelp:HowToReadline|中文| [[::HowToReadline/zh/zh|中文]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/zh-hans | • {{#if: UbuntuHelp:HowToReadline|中文(简体)| [[::HowToReadline/zh/zh-hans|中文(简体)]]}}|}} {{#ifexist: {{#if: UbuntuHelp:HowToReadline | UbuntuHelp:HowToReadline | {{#if: | :}}HowToReadline/zh}}/zh-hant | • {{#if: UbuntuHelp:HowToReadline|中文(繁體)| [[::HowToReadline/zh/zh-hant|中文(繁體)]]}}|}} |
{{#ifeq:UbuntuHelp:HowToReadline|:HowToReadline/zh|请不要直接编辑翻译本页,本页将定期与来源同步。}} |
{{#ifexist: :HowToReadline/zh/zh | | {{#ifexist: HowToReadline/zh/zh | | {{#ifeq: {{#titleparts:HowToReadline/zh|1|-1|}} | zh | | }} }} }} {{#ifeq: {{#titleparts:HowToReadline/zh|1|-1|}} | zh | | }}
如果你使用Bash Shell,不难发现它的命令行编辑都是通过Readline库来实现的,也有其他很多程序使用这个库。Ubuntu和Kubuntu提供的Readline配置允许你使用一些常用键来移动光标或编辑命令行,例如,左右箭头控制键。除此之外,你可能还想要一些其他特性。实际上,Readline自身有一套丰富的键盘绑定,但是它们可能很难记住,或者有些用起来不方便。例如,Alt+d键用来删除当前光标右边的单词。键入bash内置命令bind -P可以查看所有键的绑定情况。
本文描述了如何在键盘指令表中新增键和设置组合键,同时附上了下表中相关键设置的Readline配置文件。
组合键 | 功能描述 |
Ctrl + Arrow | 一次向前或向后移动一个单词1 |
Ctrl + Delete | 删除光标右边的一个单词 |
Ctrl + Backspace | 删除光标左边的一个单词 |
Shift + Delete | 删除光标处到行尾间的内容 |
Shift + Backspace | 删除光标处到行首间的内容 |
Insert | 替换模式/插入模式切换2 |
注1:Kubuntu自6.06版已默认使用该组合键,在这为使得例子更加完整,我们也把它列举了进来。
注2:每次在插入模式中才开始调用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`中还有默认设置的备份。利用它可以创建新的键盘表进行还原,运行以下命令即可:
gzip -cd /usr/share/doc/konsole/README.default.Keytab.gz > myKubuntu.keytab patch myKubuntu.keytab default.keytab.patch
在按照上面所说的安装了myKubuntu.keytab文件后,启动一个新的Konsole会话,依次选择Settings(设置)/Keyboard(键盘)/XTerm (myKubuntu),如果你觉得新的键盘设置很适合自己,那么点击Settings(设置)/Save as Default(设为默认)将其设成默认。
如果你没有使用Konsole的默认键盘设置,同时又需要修改另一个keytab文件。那么在操作过程中建议你使用这个技巧,通过命令konsole --keytab myKubuntu
来启动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权限然后执行下面的命令:
patch --backup /etc/inputrc /tmp/inputrc.patch
这样将生成一个备份文件,很可能是调用了/etc/inputrc.orig(具体请参考`path(1)`)。
请记得在测试前重新启动一个会话,如果有必要的话,更改键盘表。
总结
通过定制Readline配置文件,你已经修改了终端模拟器,可以让Konsole执行自定义的字节序。到此为止,键盘表中自定义的按键会跟系统中的Home,End等键一样在Bash和其他命令行程序中生效。
相关页面
Andrew's (barebones) guide to terminals and keymappings