【问题标题】:make command not tabbing to complete file names使命令不使用制表符来完成文件名
【发布时间】:2016-09-13 06:05:28
【问题描述】:

尝试在 linux 中使用“make”命令为类编译 c 程序。如果我确实让它工作,但如果我输入“make”然后开始输入文件名和选项卡,它不会为我自动完成文件。这有点烦人,我希望能够使用它而不是每次都输入 gcc -o 来测试我的程序。我该如何解决这个问题?

编辑 我在 c720 chromebook 上完全安装了 GalliumOS - 2.0 (ubuntu 16.04)(ChromeOS 已被完全删除并替换为这个) 外壳是 bash。

edit2 在我的 ~/.bashrc 文件中添加行 complete -f -X '!*' make 有效,但现在我需要帮助使其忽略目录或使其仅将 .c 和已编译的 c 程序添加到自动完成中。

【问题讨论】:

  • make 是构建经理。构建管理器的目的基本上是允许您构建应用程序,而无需自己调用编译器,也无需在命令行中指定所有文件。阅读make 文档并查看示例以了解如何使用它。有了一个好的 Makefile,你所要做的就是输入make all 命令,不管你有多少文件,你的程序都会被构建。
  • 制表符补全是您的 shell 的一项功能,而不是 make 的一项功能。至少,您应该指出您的 shell(在 Linux 上,通常是 Bash),但理想情况下,还应展示对如何诊断其配置中的至少简单问题的基本了解。在 Bash 中,您的发行版很可能包含第三方选项卡完成模块,因此我们真的需要知道您的系统上安装了哪些内容才能开始解决此问题。请edit您的问题包含这些详细信息。

标签: linux makefile compilation command


【解决方案1】:

它可能没有完成,因为make 后面的参数通常是目标的名称(用于配方)而不是文件名。

对于需要文件名的选项,它可能会完成,例如make -f mymakefile.

【讨论】:

  • 当我通过 ChromeOS 运行带有 crouton 的 ubuntu 12.04 时,它运行良好,这就是为什么我很困惑为什么它现在无法在完整的 linux 安装中运行。
  • 这可能是因为新的完成功能是上下文感知的。它让你完成那里适当的事情。我的 zsh 补全也在 Makefile 中查找目标名称。
猜你喜欢
  • 1970-01-01
  • 2011-01-28
  • 2016-05-29
  • 1970-01-01
  • 1970-01-01
  • 2014-12-31
  • 1970-01-01
  • 2016-01-14
  • 1970-01-01
相关资源
最近更新 更多