Bash 选项卡补全为变量添加空间

Bash 选项卡补全为变量添加空间

我在 .bashrc 中定义了许多全局变量。

 export mylogdir=/var/mylogs
 export myappdir=/opt/myapps

我可以 cd $mylogdir。但是,如果我 ls $mylogdir,则会在 $mylogdir 的制表符补全中添加一个空格:

ls $myl[TAB] -> ls $mylogdir<space>

停止添加空间的任何选项或过程。空间是一个问题,因为我有时想要

cat $mylogdir/<space>logfile1.log

变量之间的切换总是<space>附加到末尾。

bash 版本=4.2.46

答案1

发现类似问题这里。总而言之:

末尾的空格是使用 compopt 设置的首选项。您可以通过以下方式查看当前行为:

compopt <program>

您可以通过运行以下命令来更改行为:

compopt +/-o <option> <program>

因此,要从 ls 变量自动完成中删除空格,您可以运行:

compopt -o nospace ls

如果您希望它永久存在,您可以将其添加到~/.bashrc

相关内容