我在终端的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