我试图在我的keymap文件中设置一个.inputrc,但是我希望它只在运行bash 4.3时才被设置/执行,因为我在不同的机器上使用不同的bash版本。
目前,我的.inputrc有:
set editing-mode vi
$if mode=vi
set keymap vi-insert
"jk":vi-movement-mode
$endif我需要这样的东西:
$if ( bash-version >= 4.3 )
$if mode=vi
set keymap vi-insert
"jk":vi-movement-mode
$endif
$endif注意:其中一台机器不直接运行bash,而是先运行KSH,然后是来自.kshrc的bash。不过,我不确定这会不会有什么区别!
发布于 2015-03-03 01:32:16
可以使用readline命令在.bashrc中设置这些bind设置。例如:
set -o vi
major=${BASH_VERSINFO[0]}
minor=${BASH_VERSINFO[1]}
if (( major > 4 )) || (( major == 4 && minor >= 3 )); then
bind -m vi-insert '"jk": vi-movement-mode'
fi发布于 2015-03-02 20:33:35
您要寻找的是$BASH_VERSINFO环境变量。它是一个包含版本信息值的数组。但是,看起来readline只支持检查调用程序的名称。您可能需要检查一下读行库版本。那样的话,不管是哪个程序在运行它,如果它有一个兼容的读行,它就会得到您的绑定。
https://stackoverflow.com/questions/28818731
复制相似问题