zhe*_*oli 5 bash readline tab-completion
当我想输入命令时echo $bash_,然后按Tab键,自动补全不会发生。
但是当我输入命令echo $BASH_,然后按 时Tab,完成列表将输出如下:
$BASH_ALIASES $BASH_COMMAND $BASH_SOURCE
$BASH_ARGC $BASH_COMPLETION_COMPAT_DIR $BASH_SUBSHELL
$BASH_ARGV $BASH_LINENO $BASH_VERSINFO
$BASH_CMDS $BASH_REMATCH $BASH_VERSION
Run Code Online (Sandbox Code Playgroud)
我的.inputrc文件包含readlineignorecase选项,set completion-ignore-case on并且文件名完成不区分大小写是可以的。
所以,我希望variable name制表符补全可以忽略变量大小写。
存在不区分大小写的文件系统,在此类系统上,文件名完成不区分大小写是有意义的。在理想的情况下,bash 可以判断文件路径的某个组件是否不区分大小写,但实际上没有提供此信息的标准接口,因此 bash 回退到让您显式配置不区分大小写的文件名完成:(引自bash手册,强调)
\n\n\n\n\n\n
completion-ignore-case
\n 如果设置为on,则 readline以不区分大小写的方式执行文件名匹配和完成。默认值为 \xe2\x80\x98off\xe2\x80\x99。
同样,您可以将全局扩展和/或大小写模式配置为不区分大小写。
\n\n但你不能使 bash 变量不区分大小写。$bash和$BASH是不同的变量。与 bash 函数名称、bash 内置名称和 bash 关键字类似。Bash 可以对所有这些进行制表符补全,但无论文件名区分大小写的配置如何,制表符补全都是区分大小写的。
虽然这似乎是一个合理的理由,但事实证明,除了文件名(包括映射到文件名的目录和 bash 命令)之外,bash制表符补全始终区分大小写,文件名可以配置为不区分大小写。即使通常不区分大小写的内容(例如信号名称和主机名称)也只能区分大小写。
\n| 归档时间: |
|
| 查看次数: |
761 次 |
| 最近记录: |