Linux 中“java”命令的制表符补全

Linux 中“java”命令的制表符补全

我在终端的Linux操作系统上用vim编写了一个java程序。
可以通过键入vim文件名的开头vim he然后按 来使用vim 来完成程序名称tab。 (=> vim helloworld.java)

但是当我使用命令执行程序时,java文件名没有制表符补全。
我可以输入java hellow,按,tab但没有任何反应,我必须写出完整的文件名。

那么为什么 tab 在命令中用vim,mv或完成文件名cd可以工作,但用java命令却不行呢?
有没有办法启用java命令的制表符补全?

答案1

这取决于您使用的外壳。

每个命令都bash必须有一个完成规范(compspec)。

您可以使用以下命令显示命令名称的当前 compspec

complete -p java
bash: complete: java: no completion specification

一个简单的方法(您可以将其放入~/.bashrc或作为单独的文件放入/etc/bash_completion.d/)是

complete -o default java

或者你可以用类似的方法缩小可能的结果范围

complete -G "*.jar" java

答案2

为命令添加补全是一个好方法,但是您可以强制 bash 执行文件名补全,Esc /而不是使用默认的上下文相关补全tab

相关内容