Bash下,如果使用的是shell脚本文件,快捷键不一定是一样的,有的时候会出现同一个快捷键有不同的表现,这种情况一般是由于Bash所处的模式不同而引起的,你可以通过set命令来调整模式:
set -o emacs ##切到emacs模式 set -o vi ##切到vi模式 set -o ## 查看当前选项的设置状态
Inputrc 用来处理键盘映射表。这个文件在启动的时候被一个bash和其他shell使用的库,readline,调用。
全局的设定值包含在 /etc/inputrc中。 每个用户自己的值设定于~/.inputrc。 ~/.inputrc 若存在,则会忽略全局设定值(~/.bashrc确定?)。前面bash设定中缺省调用 /etc/inputrc 如果你想让系统同时使用两个设定,可以把一个 .inputrc放到/etc/skel 中给每一个新建立的用户使用。
## 本例来自CentOS6.4的默认配置文件 $if mode=emacs # for linux console and RH/Debian xterm "/e[1~": beginning-of-line "/e[4~": end-of-line # commented out keymappings for pgup/pgdown to reach begin/end of history #"/e[5~": beginning-of-history #"/e[6~": end-of-history "/e[5~": history-search-backward "/e[6~": history-search-forward "/e[3~": delete-char "/e[2~": quoted-insert "/e[5C": forward-word "/e[5D": backward-word "/e[1;5C": forward-word "/e[1;5D": backward-word # for rxvt "/e[8~": end-of-line "/eOc": forward-word "/eOd": backward-word # for non RH/Debian xterm, can't hurt for RH/DEbian xterm "/eOH": beginning-of-line "/eOF": end-of-line # for freebsd console "/e[H": beginning-of-line "/e[F": end-of-line $endif
说明:
在配置文件中,/C代表CTRL,/M代表ALT,/e代表ESC,//是反斜杠/,/'是单引号,/"是双引号;
/C- control prefix /M- meta prefix /e an escape character // backslash /" literal ", a double quote /’ literal ’, a single quote
如果要查看某一个功能键的字符序列可以通过[CTRL-V]来实现,或者输入cat后回车,进入编辑中,直接按快捷键
配置文件中可能会使用八进制或者十六进制来表示字符。
参数详解:
# emacs模式的一些默认/修改
$if mode=emacs
# 允许使用Home/End键
"\e[1~": beginning-of-line
"\e[4~": end-of-line
# 允许使用Delete/Insert 键
"\e[3~": delete-char
"\e[2~": quoted-insert
# “page up”和“page down”的映射将逐步进入历史的开始/结束
"\e[5~": beginning-of-history
"\e[6~": end-of-history
# “page up”和“page down”搜索历史的替代映射
"\e[5~": history-search-backward
"\e[6~": history-search-forward
#ctrl -左箭头和ctrl -右箭头用于单词移动的映射
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word
$if term=rxvt
"\e[7~": beginning-of-line
"\e[8~": end-of-line
"\eOc": forward-word
"\eOd": backward-word
$endif
# 对于非RH/Debian xterm,对RH/Debian xterm没有害处
# "\eOH": beginning-of-line
# "\eOF": end-of-line
# 支持freebsd控制台
# "\e[H": beginning-of-line
# "\e[F": end-of-line
$endif
set horizontal-scroll-mode Off # 确认我们不会在同一行中输出所有的东西。
set meta-flag On # 开启8比特输入
set input-meta On
set convert-meta Off # 禁止对第8个比特过滤
set output-meta On # 在显示时保存第8个比特
set bell-style none # 关闭可视和声音提示
# 函数第一部分中包括的换码符序列的值
"\eOd": backward-word
"\eOc": forward-word
# 在控制台使用
"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[5~": beginning-of-history
"\e[6~": end-of-history
"\e[3~": delete-char
"\e[2~": quoted-insert
# xterm使用
"\eOH": beginning-of-line
"\eOF": end-of-line
参考资料:
https://www.runoob.com/w3cnote/bash-shortcut.html