类路径的奇怪 javac Tab 补全
Strange javac Tab Completion for Classpath
javac 命令有奇怪的制表符补全 -cp
和 -classpath
。我的印象是 -cp
是 -classpath
的别名。但是,当我在 -classpath
标志后按 Tab 键时,我会按预期获得 .jar
文件。当我用 -classpath
按 Tab 键时,我得到:
javac -classpath <tab>
javac -classpath lib/ <tab>
javac -classpath lib/test.jar
和
javac -classpath .: <tab>
javac -classpath .:lib/ <tab>
javac -classpath .:lib/test.jar
或者,-cp
javac -cp <tab>
javac -cp lib/ <tab>
javac -cp lib/
和
javac -cp .: <tab>
javac -cp .:
我在 ubuntu 16.04 和 javac 1.8 中使用 bash。0_111 如果相关的话。
此功能由 bash-completion
包实现。您可以像这样找到相关功能的代码:
$ complete -p javac
complete -F _javac javac # the function `_javac' is used to complete the command `javac'
$ declare -f _javac . # this will print the function code
在那里你会看到相关代码是:
case $prev in
...
-classpath|-bootclasspath|-sourcepath|-extdirs)
...
因此,如果您愿意,可以从 declare -f
命令中获取 _javac()
的整个定义,将其修改为在该 case
语句中包含 -cp
,然后将其附加到 bash 初始化文件(.bashrc
或 .bash_profile
等)的 end。然后,当你开始一个新的 shell 时,新的 _javac()
将被用来完成 javac
命令。
此外,最新版本的代码也可以在 github 上查看。那里定义的其他命令完成(java
、javadoc
)理解 short-hand 标志,因此我确定欢迎提出修复此问题的拉取请求。
更新:现在是fixed来源。
javac 命令有奇怪的制表符补全 -cp
和 -classpath
。我的印象是 -cp
是 -classpath
的别名。但是,当我在 -classpath
标志后按 Tab 键时,我会按预期获得 .jar
文件。当我用 -classpath
按 Tab 键时,我得到:
javac -classpath <tab>
javac -classpath lib/ <tab>
javac -classpath lib/test.jar
和
javac -classpath .: <tab>
javac -classpath .:lib/ <tab>
javac -classpath .:lib/test.jar
或者,-cp
javac -cp <tab>
javac -cp lib/ <tab>
javac -cp lib/
和
javac -cp .: <tab>
javac -cp .:
我在 ubuntu 16.04 和 javac 1.8 中使用 bash。0_111 如果相关的话。
此功能由 bash-completion
包实现。您可以像这样找到相关功能的代码:
$ complete -p javac
complete -F _javac javac # the function `_javac' is used to complete the command `javac'
$ declare -f _javac . # this will print the function code
在那里你会看到相关代码是:
case $prev in
...
-classpath|-bootclasspath|-sourcepath|-extdirs)
...
因此,如果您愿意,可以从 declare -f
命令中获取 _javac()
的整个定义,将其修改为在该 case
语句中包含 -cp
,然后将其附加到 bash 初始化文件(.bashrc
或 .bash_profile
等)的 end。然后,当你开始一个新的 shell 时,新的 _javac()
将被用来完成 javac
命令。
此外,最新版本的代码也可以在 github 上查看。那里定义的其他命令完成(java
、javadoc
)理解 short-hand 标志,因此我确定欢迎提出修复此问题的拉取请求。
更新:现在是fixed来源。