当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : bash 键绑定问题
帖子发表于 : 2010-10-16 22:48 
头像

注册: 2008-07-30 23:21
帖子: 13427
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 127
代码:
>0< ~$ cat .inputrc
$if mode=emacs
"\e[A": history-search-backward
"\e[B": history-search-forward
$endif

$if mode=vi
set keymap vi-insert
"\C-p": history-search-backward
"\C-n": history-search-forward
set keymap vi
"\C-p": history-search-backward
"\C-n": history-search-forward
"k": history-search-backward
"j": history-search-forward
"K": history-search-backward
"J": history-search-forward
$endif

>0< ~$ set -o vi

>0< ~$ bind -p | grep history-search-         # << vi 插入模式,正常
"\C-p": history-search-backward
"\C-n": history-search-forward

>0< ~$ bind -p | grep history-search-         # << vi 命令模式,也正常
"\C-p": history-search-backward
"K": history-search-backward
"k": history-search-backward
"\C-n": history-search-forward
"J": history-search-forward
"j": history-search-forward

>0< ~$ set -o emacs

>0< ~$ bind -p | grep history-search-         # << emacs 模式,不正常
# history-search-backward (not bound)
# history-search-forward (not bound)

>0< ~$


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: bash 键绑定问题
帖子发表于 : 2010-10-17 0:03 
头像

注册: 2008-07-30 23:21
帖子: 13427
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 127
明白了,默认 vi 模式,所以 emacs 那块形同虚设,set -o emacs 切换后必须手动重载 bind -f ~/.inputrc 。默认 emacs 模式亦然。其实就是 bash 只自动加载一次 inputrc ,供 bashrc 中设置模式或默认使用。
要载入这两种模式的键绑定,只能手动多加载一份,在 .bashrc 中加入
代码:
# 默认 vi 模式
bind -f ~/.inputrc
set -o vi
# 默认 emacs 模式
set -o vi
bind -f ~/.inputrc
set -o emacs

因 .bashrc 先执行,.inputrc 后加载,所以得先手动加载一次供 emacs 模式使用。set -o vi 后的 bash 会自动加载。如此以后两中模式便可随意切换而不失自定义键。


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


页首
 用户资料  
 
3 楼 
 文章标题 : Re: bash 键绑定问题
帖子发表于 : 2010-10-19 20:56 
头像

注册: 2008-07-30 23:21
帖子: 13427
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 127
:em20
偶然的机会看到,inputrc 这样才是最好的,bashrc 中只要简单的 set -o vi
代码:
$if bash
set keymap emacs
"\C-p": history-search-backward
"\C-n": history-search-forward
set keymap vi-insert
"\C-p": history-search-backward
"\C-n": history-search-forward
"\C-k": kill-line
set keymap vi
"\C-p": history-search-backward
"\C-n": history-search-forward
"k": history-search-backward
"j": history-search-forward
"K": previous-history
"J": next-history
"\C-k": kill-line
$endif


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 3 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译