Cip*_*agă 8 linux bash makefile tab-completion
我不知道标签完成是如何工作的,但突然之间我的一切都被破坏了.除了用例之外,我甚至不知道提供什么信息.clean
makefile中有一个目标.
$ make c<tab>
结果是
$ make c23:set: command not found
lean
编辑:
我相信某种程度上我破坏了set
内置的bash,因为它man set
说No manual entry for set
并且which set
没有任何报告.但是,在终端上调用set会产生结果.
我正在使用:GNU bash,版本4.3.11(1)-release(x86_64-pc-linux-gnu)和GNU Make 3.81
Cip*_*agă 14
感谢Etan的评论和Aaron指示makefile的位置,我设法调试了这个.
我跑了,set -x
所以我可以跟踪完成标签时发生的事情.输出make c<tab>
主要包括来自bash完成文件的命令make
,位于/usr/share/bash-completion/completions/make
(1).但是,我注意到输出和文件之间的不一致.接近尾声,产量说:
+ local mode=--
+ (( COMP_TYPE != 9 ))
++ set +o
++ grep --colour=auto -n -F posix
+ local 'reset=23:set +o posix'
+ set +o posix
Run Code Online (Sandbox Code Playgroud)
我从文件中确定了与这些行对应的内容:
if (( COMP_TYPE != 9 )); then
mode=-d # display-only mode
fi
local reset=$( set +o | grep -F posix ); set +o posix # for <(...)
Run Code Online (Sandbox Code Playgroud)
所以输出做了一个grep --colour=auto -n
而不仅仅是grep
.的确,我已经设置了这个别名grep
删除别名后立即生效.
我希望这有助于其他人调试他们的问题.
编辑:我在这里提交了一个错误报告:https://alioth.debian.org/tracker/index.php?func = detail&aid = 315108&group_id = 100114 &atid = 413095
归档时间: |
|
查看次数: |
1546 次 |
最近记录: |