分类: LINUX
2005-12-20 21:49:37
How To Make A Hotkey On The Linux Console
察看热键对应的ANSI
# cat
<按下热键,如:Ctrl-Alt-H>;
看到了什么? ^[^H 对不对?
按
同理可以得知其他组合热键对应的ASCII字符,
然后修改/etc/inputrc 或 ~/.inputrc,向里面添加组合热键的宏定义
"^[^G":"gaim & &>;/dev/null && disownC-M"
#按Ctrl-Alt-g在当前shell打开gaim, 并脱离该shell独立运行,即:即使你退出了该shell, gaim也不会关闭
字符输入方法: 在vi的插入模式下, ^[是先按Ctrl-V, 然后按ESC...^G是先按Ctrl-v, 然后按Ctrl-g,其他的与此类似
"^[^H":"vi /etc/httpd/conf/httpd.confC-M"
# Ctrl-Alt-h 打开vi编辑器编辑apache的配置文件
"^[^L":"stardict & &>;/dev/null && disownC-M"
# Ctrl-Alt-l ->;>; 运行星际译王(l->;look up查询的意思)
"^[^O":"soffice & &>;/dev/null && disownC-M"
# Ctrl-Alt-o ->;>; 打开Openoffice
"^[^P":"opera & &>;/dev/null && disownC-M"
# Ctrl-Alt-p ->;>; 大名鼎鼎的浏览器Opera
"^[^X":"xmms & &>;/dev/null && disownC-M"
其他一些组合键可以根据自己的需要配置,偶就不多说了
测试一下:
su - USER
部分热键不能用是因为有些热键先被终端给截获了,所以readline没有收到。
另外补充几点:
1. 还可以定义Alt+Shif+[A-Z] 热键, 偶试了一下,26个热键全部都可以,不会被终端截获
#define Alt+Shift+[A-Z]
"^[A":"
"^[B":"
...
"^[Y":"
"^[Z":"
^[A 的输入方法与前面类似,进入Vi插入模式后,先按Ctrl-V, 再同时按Alt+Shif+A
2. 宏定义的末尾C-M表示输入完定义的命令后回车,也可以更简洁地用一个
来表示,即:
"^[A":"
与下面的是等价的
"^[A":"
3. 发现还可以定义Ctrl-F[1-12], Alt-Shift-F[1-12]
(Alt+F[1-12]也可以, 但有一些会被终端捕获)
相应字符输入方法与前面类似
加快你输入命令的速度
一般情况下,我们可以使用上下方向键来查找命令历史列表,以此重复输入命令,但是方向键离主键盘区太远,如果频繁使用的话,会耽误不少时间,而且挪动右手时也不太方便,有没有什么办法把方向键的功能转移到我们经常敲命令的地方呢?
如使用Alt+J = Down Arrow 向下查找,Alt+K=Up Arrow 向下查找
通过热键的宏定义可以做到这点:
偶的热键映射如下:
"eh":"^[OD" # move left
Alt-H 向左移一个字符, 相当于Left Arrowgh
"el":"^[OC" # move right
Alt-L 向右移一个字符,相当于Right Arrow
"ej":"^[OB" # move up
Alt-J 向下移动,相当于Up Arrow
"ek":"^[OA" # move down
Alt-K 向上移动,相当于Down Arrow
"ei":"^?" # left earse one character
Alt-I 向左删除一个字符,相当于Backspace
"eo":delete-char # right earse one character
Alt-O 向右删除一个字符,相当于Delete
"en":backward-kill-word # left kill one word
Alt-N 向左删除一个单词
"em":kill-word # right kill one word
Alt-M 向右删除一个单词
"ea":"^[n^[n^[n^[n^[n^[n^[n" # kill to the head
Alt-A 删除当前位置到开头,也就是多Alt-N几次(A-->; ahead)
"ee":"^[m^[m^[m^[m^[m^[m^[m" # kill to the head
Alt-E 删除当前位置到末尾,也就是多Alt-M几次(E-->; end)
"ep": insert-last-argumem"
Alt-P 插入上一个命令最后一个参数 (P-->; Paste)
"ew": forward-word
系统默认Alt-F (forward)跳到当前单词词尾,如果已在词尾,则跳到下一个单词(右边一个单词)词尾
发觉F和B键离得太远,不方便,偶分别改作Alt-Q, Alt-W, 但是Alt-F/B照样可以用
这样输入命令的时候几乎可以不用离开主键盘区,而且移动光标,删除字符,删除单词,上下历史命令查找都集中在一块,比以前方便多了。
不过开始可能有些不习惯,就跟使用vi一样,但是多练几次就熟练了。
以上是根据偶个人的喜好来设定的,大家如果有更好的方案的话,可以拿出来共享。
另外,这些热键在控制台可以使用自如,如果在X-windows下的模拟终端,需要把终端的菜单的热键禁用掉,可以在编辑->;热键里更改
意外的发现:
Alt-U(Uppercase) 可以把光标位置到末尾之间的字符全部转换为大写
Alt-C(Case) 可以把光标位置到末尾之间的字符全部转换为小写
日志标题:setup mysql 发表时间:2005-12-3 18:26:15 添加mysql用户和组 解压并建立连接 运行安装脚本 配置文件属性 拷贝配置文件到系统中 添加mysql库文件到linux 启动数据库 连接数据库并改变root密码 改变PATH环境变量 |