fish shell中如何在Tab补全时列出所有子目录与文件
在fish Shell中用Tab配合路径操作时列出所有子目录与文件的方法
1. 基础Tab补全逻辑
- 输入
cd加空格后按Tab,默认只会显示当前目录下的可遍历子目录(因为cd是目录切换命令,默认补全规则仅针对目录)。 - 如果输入部分路径前缀(比如
cd Pic)再按Tab,会自动补全匹配的路径,同时列出所有符合前缀的目录候选。
2. 修改cd的补全规则,同时显示文件
要是想让cd配合Tab时同时列出文件和目录,执行这条命令:
complete -c cd -f
-f参数会让cd的补全逻辑包含文件。如果要让这个设置永久生效,把上述命令添加到~/.config/fish/config.fish配置文件里,下次启动fish就会自动加载。
3. 其他命令的路径补全
像ls、cat这类需要操作文件/目录的命令,输入命令加空格后按Tab,默认就会列出当前目录下所有可访问的子目录和文件:
- 若有唯一匹配的路径,会直接自动补全;
- 若有多个候选,一次Tab就会展示全部列表。
内容的提问来源于stack exchange,提问作者BAR
相关产品推荐
相关产品推荐

