inputrc 文件为特定的情况处理键盘映射,这个文件被 Readline 用作启动文件,Readline 是 Bash 和其它大多数 shell 使用的与输入相关的库。
大多数人并不需要自定义键盘映射,所以下面的命令将创建一个适用于所有登陆用户的全局 /etc/inputrc 文件。如果你需要为某个用户覆盖默认的设置,你可以在该用户的主目录中创建一个包含自定义键盘映射的 .inputrc 文件。要想了解更多关于如何编辑 inputrc 文件的信息,运行 info bash 以参考 bash 的 info 页的 Readline Init File 这一节,运行 info readline 以参考readline 自己的 info 页也不错。
下面是一个基本的全局 inputrc 文件,那些选项的注释也一起包括在文件里。请注意,注释不能和命令放在同一行里。
cat > /etc/inputrc << "EOF"
# 开始 /etc/inputrc
# 修改者 Chris Lynn <>
# 允许命令行提示符转到下一行
set horizontal-scroll-mode Off
# 允许 8bit 输入
set meta-flag On
set input-meta On
# 禁止第8位(最高位)剔除
set convert-meta Off
# 允许显示第8位(最高位)
set output-meta On
# bell-style的取值范围是:none, visible, audible
set bell-style none
#####################################################################
# 下面将包含在第一个参数中的转义序列值映射到 readline 的特定功能
"\eOd": backward-word
"\eOc": forward-word
# for linux console
"\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
# for xterm
"\eOH": beginning-of-line
"\eOF": end-of-line
# for Konsole
"\e[H": beginning-of-line
"\e[F": end-of-line
# 结束 /etc/inputrc
EOF
设置meta-flag on允许从终端输入中文,否则的话终端会过滤掉每个字节的最高位;
convert-meta off是设置不将中文字符转化为转义序列,因为中文是两个字节表示的,第一字节的最高位是1开头的,可以能同于某个转义字符;
output-meta on就是允许向终端直接输出中文;
input-meta on就是允许向终端直接输入中文;
set completion-ignore-case on这个可以在 echo A的时候按了后就能由readline给你补出来;
附:
1. readline 可以说是一个 command line editing 的 library. shell, vi, tclsh 等都使用它.
2. inputrc 是 bash 中 readline 的一个初始化文件, 你可以定义自己喜欢的 key-binding
阅读(1213) | 评论(0) | 转发(0) |