我的shell是GNU Bash 4.3.11,我目前将M-h
绑定到调用内置命令cd ..
上。
bind -x '"\eh": "cd .."'
这给了我一个巧妙的方法来浏览目录树,我可以反复按
M-h
键,而不是极其耗时的 cd ..
命令。然而,它的缺点是要么不能重置我的 $PS1
,要么不能重新绘制我的提示符,因此我失去了当前工作目录的上下文,直到我输入新命令。我知道的另一种选择是编写类似于
"\eh": "\C-a\C-kcd ..\C-m"
在我的
.inputrc
中直接输入命令存在缺点,不仅会丢失我正在输入的任何现有命令的上下文(这可能是可以解决的),而且还会打印出cd ..
(我认为无法解决)。我的期望行为是,当我处于目录
~/one/two
并且提示符为~/one/two$
时,按下M-h
后进入~/one
并且提示符为~/one$
,最好保留我最初输入的任何命令。我该如何实现这个功能?