Tab在 Bash shell 提示符上使用 for 完成时,是否有任何方法可以将其配置为仅完成命令的文件vim
和仅完成命令的目录cd
?在包含许多文件和子目录的大型目录中,完成时要做的更正量应该减少一半。
请注意,迁移到不同的 shell 是不切实际的,但如果不存在 Bash 解决方案,我仍然有兴趣听到非 Bash 解决方案。
答案1
如前所述,安装(并且可能启用)bash-completion
是最简单的(或至少是最实用的)方法......
然而,这些命令也会这样做:(将其放入~/.bashrc
和/或~/.bash_profile
或某处以便每次打开控制台时运行它)
complete -d cd
complete -f vim
请参阅bash
的手册页并help complete
了解更多信息/选项。
答案2
有什么方法可以将其配置为仅完成命令 vim 的文件吗?
可能有,但要小心你的愿望。这将使得子目录中的文件无法进行制表符补全,并且也不会针对包含文件的目录进行扩展。
和[有什么方法可以将其配置为完成]仅用于命令cd的目录吗?
是的,Ubuntu 12.04 中默认安装了该行为,并且可能还有其他操作系统。如果你没那么幸运,可以尝试一下这个答案在 Superuser.com 上。
答案3
你bash-completion
安装包了吗?
自动补全vim
也会选择目录,因为目录中几乎总是有文件。您还可以使用 vim 打开目录,然后在 vim 中遍历目录树。
在我的系统上,bash 自动补全cd
仅列出目录,因此这是可能的,并且是我所有系统上默认发生的情况......