Chinaunix首页 | 论坛 | 博客
  • 博客访问: 841044
  • 博文数量: 133
  • 博客积分: 7117
  • 博客等级: 少将
  • 技术积分: 1846
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-16 21:30
文章分类

全部博文(133)

文章存档

2012年(1)

2011年(4)

2010年(2)

2009年(57)

2008年(69)

分类:

2009-02-13 09:54:36

bash 中的主命令提示符同时提供了编辑命令行的能力和历史记录功能,后者记住各个命令行,以便您能够再次执行它们。

编辑功能意味着您可以在当前显示的命令行中向前和向后移动,以做出更改或纠正输入错误。在标准 bash 形式中,您可以使用光标键来执行基本的移动。更广泛的命令(例如按单词向前和向后移动)可以通过 Readline 库来控制,该库在缺省情况下同时支持 vi 和 emacs 绑定。若要设置编辑模式,可以在命令行上或在引导文件中指定您的首选模式:$ set editing-mode emacs

例如,使用 emacs 编辑模式,以下键绑定将生效:

  • Control-A——此键绑定将当前位置定位到行开头。
  • Control-E——此键绑定将当前位置定位到行尾。
  • Control-K——此键绑定删除截止行尾的所有内容。
  • Meta-B——此键绑定后退一个单词。
  • Meta-F——此键绑定向前推进一个单词。
  • Meta-D——此键绑定删除当前单词。

使用内部 bind bash 命令,您实际上可以随心所欲地将任何键或组合绑定到某个特定的操作。首先,您可以通过使用 -P 选项(请参见清单 1)来获取可用命令列表。



$ bind -P 

abort can be found on "\C-g", "\C-x\C-g", "\M-\C-g".
accept-line can be found on "\C-j", "\C-m".
alias-expand-line is not bound to any keys
arrow-key-prefix is not bound to any keys
backward-byte is not bound to any keys
...
yank can be found on "\C-y".
yank-last-arg can be found on "\M-.", "\M-_".
yank-nth-arg can be found on "\M-\C-y".
yank-pop can be found on "\M-y".

\C 引用 Control 键。\M 序列引用“Meta”键(某些键盘上的专用键,或者通常为 Alt 键或 Escape 键)。

若要设置绑定,您必须指定键序列和要执行的命令,它们之间用分号分隔,并且键序列要用双引号来转义(在极端情况下,您可能需要使用单引号来对该形式进行再次转义)。例如,若要将 Control-B 更改为逐个单词地向后移动,可以使用 $ bind "\C-b":backward-word

您甚至可以使用绑定来执行 Shell 命令(例如,运行某个应用程序)。为此,您必须添加 -x 选项,这是需要两次转义的一个示例。例如,若要将 Control-E 设置为运行 emacs,您要使用以下命令:$ bind -x '"\C-e"':emacs

若要让 bash 中的键绑定在每次都启用,您可以设置 .inputrc 文件中的信息(然后此文件将影响所有启用了 Readline 的应用程序),或者您可以在启动脚本中放置特定的 bash 绑定,本文稍后将对此进行介绍。

阅读(1092) | 评论(0) | 转发(0) |
0

上一篇:signal_pending(current)

下一篇:bash字符串操作

给主人留下些什么吧!~~