“UbuntuHelp:HowToReadline/zh”的版本间的差异
来自Ubuntu中文
Dbzhang800(讨论 | 贡献) |
小 |
||
第1行: | 第1行: | ||
− | {{Translation}} | + | {{Translation}} {{From|https://help.ubuntu.com/community/HowToReadline}} {{Languages|UbuntuHelp:HowToReadline}} |
− | {{From|https://help.ubuntu.com/community/HowToReadline}} | + | |
− | {{Languages|UbuntuHelp:HowToReadline}} | + | |
− | + | <br> 如果你使用Bash Shell,不难发现它的命令行编辑都是通过Readline库来实现的,也有其他很多程序使用这个库。Ubuntu和Kubuntu提供的Readline配置允许你使用一些常用键来移动光标或编辑命令行,例如,左右箭头控制键。除此之外,你可能还想要一些其他特性。实际上,Readline自身有一套完整的键盘绑定,但是它们可能很难记住,或者有些用起来不方便。例如,Alt+d键用来删除当前光标右边的单词。键入bash内置命令bind -P可以查看所有键的绑定情况。 | |
− | + | ||
本文描述了如何在键盘指令表中新增键和设置组合键,同时附上了下表中相关键设置的Readline配置文件。 | 本文描述了如何在键盘指令表中新增键和设置组合键,同时附上了下表中相关键设置的Readline配置文件。 | ||
− | {| | + | |
− | + | {| cellspacing="0" border="1" | |
|- | |- | ||
− | | | + | | 组合键 |
+ | | 功能描述 | ||
|- | |- | ||
− | |Ctrl + | + | | Ctrl + Arrow |
+ | | 一次向前或向後移动一个单词<sup>1</sup> | ||
|- | |- | ||
− | |Ctrl + | + | | Ctrl + Delete |
+ | | 删除光标右边的一个单词 | ||
|- | |- | ||
− | | | + | | Ctrl + Backspace |
+ | | 删除光标左边的一个单词 | ||
|- | |- | ||
− | |Shift + | + | | Shift + Delete |
+ | | 删除光标处到行尾间的内容 | ||
|- | |- | ||
− | | | + | | Shift + Backspace |
+ | | 删除光标处到行首间的内容 | ||
+ | |- | ||
+ | | Insert | ||
+ | | 替换模式/插入模式切换<sup>2</sup> | ||
|} | |} | ||
− | + | <br> 注<sup>1^:Kubuntu自6.06版已默认使用该组合键,在这为使得例子更加完整,我们也把它列举了进来。<br>注^2</sup>:每次在插入模式中才开始调用Readline,"Insert"键在各次调用间并不相互联系。 | |
− | 注<sup>1^:Kubuntu自6.06版已默认使用该组合键,在这为使得例子更加完整,我们也把它列举了进来。<br>注^2</sup>:每次在插入模式中才开始调用Readline,"Insert"键在各次调用间并不相互联系。 | + | |
由Readline库定义的一系列字符或者数字的组合,称为一个"单词"。"单词"一旦定义就不太可能重新定义,但在Ubuntu中的其他地方可能对它们又有不同的定义。例如,Konsole默认在双击选定单词时将''':@-./_~'''当作单词的一部分(参考 控制台中的'''Settings(设置)/Configure Konsole(配置Konsole)''')。 | 由Readline库定义的一系列字符或者数字的组合,称为一个"单词"。"单词"一旦定义就不太可能重新定义,但在Ubuntu中的其他地方可能对它们又有不同的定义。例如,Konsole默认在双击选定单词时将''':@-./_~'''当作单词的一部分(参考 控制台中的'''Settings(设置)/Configure Konsole(配置Konsole)''')。 | ||
第30行: | 第35行: | ||
==== 键盘映射 ==== | ==== 键盘映射 ==== | ||
− | 在安装新的Readline配置文件之前,需要对终端模拟器进行设置,使其能对设置的各组合键分别产生相应的字节序。设置时,对Konsole只需要稍做改动,因为默认的'''Xterm(XFree 4.x.x)'''键盘表, | + | 在安装新的Readline配置文件之前,需要对终端模拟器进行设置,使其能对设置的各组合键分别产生相应的字节序。设置时,对Konsole只需要稍做改动,因为默认的'''Xterm(XFree 4.x.x)'''键盘表,<Ctrl><Backspace>和<Shift><Backspace>产生同样的字节序,也就相当于<Backspace>键。 |
使用 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. | + | 在按照上面所说的安装了myKubuntu.keytab文件後,启动一个新的Konsole会话,依次选择'''Settings(设置)/Keyboard(键盘)/XTerm (myKubuntu)''',如果你觉得新的键盘设置很适合自己,那么点击'''Settings(设置)/Save as Default(设为默认)'''将其设成默认。 |
− | 如果你没有使用Konsole的默认键盘设置,同时又需要修改另一个keytab文件。那么在操作过程中建议你使用这个技巧,通过命令<code><nowiki>konsole --keytab myKubuntu</nowiki></code> | + | 如果你没有使用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配置 ==== |
− | + | 在完成终端模拟器配置成可执行自定义的字节序後,接下来配置Readline。下载 attachment:inputrc 文件将其命名成`.inputrc`放到自己主目录,或者替换`/etc/inputrc`文件即可。 | |
− | 与前面类似,使用patch文件方式安装可能比采用完全替换的安装方式更适合你。下载 attachment:inputrc.patch 文件到/ | + | 与前面类似,使用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] | ||
第71行: | 第73行: | ||
---- | ---- | ||
− | |||
− | [[ | + | [[Category:CategoryDocumentation]] [[Category:CategoryCleanup]] [[Category:UbuntuHelp]] |
2008年4月23日 (三) 00:24的版本
点击翻译: |
English • 中文 |
如果你使用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