可以把任何命令或命令的组合指定给键盘上的某个键,可以是Alt+[A-Z],
Ctrl-[A-Z],Alt+Shift+[A-Z],F1-F12,Ctrl-F[1-12],Alt-F[1-12],Alt+Shift+F[1-12],还有更不可思议的是甚至还可以为功能键加上参数,这样你按下那个键的时候,它会等待你输入相应的参数,并根据不同的参数运行不同的命令。
当然,有一些热键会被终端所捕获,如常见的Ctrl-D/C/Q/Z等,不过没关系,可用的热键还多着呢!
定义热键的配置文件为:/etc/inputrc或~/.inputrc,定义热键的格式如下:
《热键对应的ASCII字符》:《执行的命令》
其中热键对应的ASCII字符可以通过先按Ctrl-V,然后按热键的方式来输入,如Ctrl-G对应的字符为^G,Alt-P对应的字符为^[p,Ctrl-Alt-H对应的字符为^[^H.
可以用/C来代替Ctrl,/M来代替Alt,/M-/C来代替Alt-Ctrl,如/C-M=Ctrl-M,/M-/C-H=Alt-Ctrl-M.另外还可以用/e代表^[。
先来看一些基本的热键定义,(这里热键里的字母不区分大小写):
^[-:su-/C-M#按Alt+-执行su-命令,末尾/C-M表示输入完定义的命令后回车,也可以更简洁地用一个/n来表示。
/M-/C-G:gaim&&》/dev/null&&disown/C-M
#按Ctrl-Alt-g在当前shell打开gaim,并脱离该shell独立运行,即:即使你退出了该shell,gaim也不会关闭
其他一些组合键可以根据自己的需要配置,偶就不多说了。
大家也许会觉得这样定义热键太乱了,而且很难记住,还有一定的限制。这个问题在后面会得到解决。
一般情况下,我们可以使用上下方向键来查找命令历史列表,以此重复输入命令,但是方向键离主键盘区太远,如》果频繁使用的话,会耽误不少时间,而且挪动右手时也不太方便,有没有什么办法把方向键的功能转移到我们经常》敲命令的地方呢?如使用Alt+J=DownArrow向下查找,Alt+K=UpArrow向下查找
通过定义热键可以做到这点:
/eh:^[OD#moveleft
#Alt-H向左移一个字符,相当于LeftArrowgh,这里^[OD即向上方向键的ASCII字符,输入方式与前面提到的类似
/el:^[OC#moveright
#Alt-L向右移一个字符,相当于RightArrow
/ej:^[OB#moveup
#Alt-J向下移动,相当于UpArrow
/ek:^[OA#movedown
#Alt-K向上移动,相当于DownArrow
/ei:^?#leftearseonecharacter
#Alt-I向左删除一个字符,相当于Backspace
/eo:delete-char#rightearseonecharacter
#Alt-O向右删除一个字符,相当于Delete
/en:backward-kill-word#leftkilloneword
#Alt-N向左删除一个单词
/em:kill-word#rightkilloneword
#Alt-M向右删除一个单词
/ea:^[n^[n^[n^[n^[n^[n^[n#killtothehead
#Alt-A删除当前位置到开头,也就是多Alt-N几次(A--》ahead)
/ee:^[m^[m^[m^[m^[m^[m^[m#killtothehead
#Alt-E删除当前位置到末尾,也就是多Alt-M几次(E--》end)
/ep:insert-last-argumem
#Alt-P插入上一个命令最后一个参数(P--》Paste)
/ew:forward-word
#系统默认Alt-F(forward)跳到当前单词词尾,如果已在词尾,则跳到下一个单词(右边一个单词)词尾
/eq:backward-word
#系统默认Alt-B(backward)跳到当前单词词首,如果已在词首,则跳到上一个单词(左边一个单词)词首