除其他外,我在Linux Mint 14上使用bash 4.2.37。
当我通过键入来自动完成环境变量的名称时Tab,它将扩展为该变量的名称,后跟一个空格。
如果变量的值恰好是目录名,我希望它扩展为变量名,后跟/
。
例如,如果我键入:
$ ls $HOM<tab>
它扩展为:
$ ls $HOME _
其中_
标记光标的位置。问题在于,我通常希望继续在主目录下键入某些文件或目录的名称,这意味着我必须先键入backspace,然后再键入/
。
因此,我希望以上内容扩展为:
$ ls $HOME/_
当我输入整个变量名时,也会发生同样的事情。之后ls $HOME
,tab添加一个空格,我希望它添加一个/
。
(当然,/
如果变量的值不是目录名,我当然不希望它添加一个。)
是否可以通过bash命令或通过更新my来告诉bash遵循我想要的方式$HOME/.inputrc
?
注意:我正在特别寻找一种使tab行为表现出所需方式的方法。用不同的击键实现相同行为的方法将很有趣,但不会回答我的问题。
(我已/etc/profile.d/bash_completion.sh
在系统上禁用它,因为它与的交互作用较弱set -o nounset
。快速实验表明,这可能与我的问题无关。)
顺便说一句,tcsh这样做:给定一个环境变量$FOOBAR
,如果它引用目录,则键入$FOOBA<tab>
扩展为;$FOOBAR/
如果不是,则键入扩展为$FOOBAR
。不,这还不足以说服我回到tcsh。zsh也这样做。