【问题标题】:bash function preserving tab completionbash函数保留制表符完成
【发布时间】:2019-06-04 17:14:05
【问题描述】:

我把函数放了

make_color() {
    make $1 | ccze -A
}

.bashrc 中获得彩色输出。他的工作正常,但make 用于选择目标的制表符完成功能丢失了。有没有办法在函数中保留命令的制表符补全,或者我可以做些什么来实现制表符补全和管道?

【问题讨论】:

  • 在你的 shell 中运行它或添加你的~/.bashrc:complete -F _make make_color

标签: bash makefile pipe alias gnu-make


【解决方案1】:

将此添加到您的 ~/.bashrc 或在您的本地 shell 中运行:

complete -F _make make_color 

函数名称_make 在您的情况下可能会有所不同。 您可以使用以下方式获取名称:

$ complete -p make
complete -F _make make

【讨论】:

  • 嗯,_make 不起作用,由于某种原因,complete -p make 返回bash: complete: make: no completion specification。有什么想法吗?
  • 有时,bash 在运行时加载它。输入make<tab><tab>。此时 bash 会加载一些完成例程。之后,complete -p make 将起作用。 complete -F _make make_color 也应该可以工作。
  • make<tab><tab> 命令complete -p make 工作后!但是完成make_color 仍然没有运气。在几个标签之后,终端被冻结了一段时间,所以至少有一些事情发生了。
  • 这是完成的延迟加载。 bash 有一种方法可以按需加载它们,而不是在开始时加载所有 shell 完成。有一种方法可以强制加载完成,而无需按make<TAB><TAB>。我把它放在某个文件里。我放错地方了。
猜你喜欢
  • 2021-08-21
  • 2014-12-14
  • 1970-01-01
  • 1970-01-01
  • 2014-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多