gpt4 book ai didi

bash - 如何将非拉丁语 gnu/make 目标添加到完成列表?

转载 作者:行者123 更新时间:2023-11-29 09:11:56 28 4
gpt4 key购买 nike

gnu/make 支持 makefile 中的非拉丁标识符(例如,目标)。

例子:

$ cat GNUmakefile
test:
@echo test
тест:
@echo test in russian

$ make test тест
test
test in russian

但是这个例子中的bash-completion只完成了一个目标——test:

"make "+ tab → "make test".

如何将非拉丁目标添加到完成列表?


使用不同版本的 bash-completion 在各种发行版列表(debian 5-8、ubuntu 12-15、centos 5-6、mandriva 2008)上进行了测试。

我至少需要 bash-completion 的最新版本支持此功能。

最佳答案

我找到了解决方案。

/usr/share/bash-completion/completions/make 函数 _make_target_extract_script 中的错误,返回 sed-script ,其中包含行:

/^[^a-zA-Z0-9]/             d             # convention for hidden tgt

它删除了(特别是)以非拉丁字符开头的目标。

在我看来,这样的正则表达式更合适(参见 this ):

/^[^[[:alnum:]]]/             d             # convention for hidden tgt

如果你不能编辑/usr/share/bash-completion/completions/make,你可以添加到~/.bashrc这样的行(基于this answer ):

_completion_loader make
eval "$(type _make_target_extract_script | sed '1d;s/a-zA-Z0-9/[[:alnum:]]/')"

更新

我提交了 bug report(不幸的是,需要注册)。

关于bash - 如何将非拉丁语 gnu/make 目标添加到完成列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31636048/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com