在 bash 中对文件和目录使用制表符补全时,仅显示相关目录级别的补全选项:
$ ls /sys/class/mem/urandom/<TAB><TAB>
dev power/ subsystem/ uevent
类似于文件系统,python 具有子对象的层次结构。不幸的是,我还没有找到一种方法来让 python 的 REPL(即通常是rlcompleter
模块)的制表符完成机制只显示可能选择的相关部分而不是完整的对象位置:
>>> import os
>>> os.path.supports_unicode_filenames.conjugate.__<TAB><TAB>
os.path.supports_unicode_filenames.conjugate.__call__( os.path.supports_unicode_filenames.conjugate.__module__
os.path.supports_unicode_filenames.conjugate.__class__( os.path.supports_unicode_filenames.conjugate.__name__
os.path.supports_unicode_filenames.conjugate.__delattr__( os.path.supports_unicode_filenames.conjugate.__ne__(
[...]
由于我觉得这种行为很烦人,有没有办法让 python 的 REPL 上的选项卡完成机制表现得像bash
文件和目录一样?