【问题标题】:How to configure bash completion to expand partial path like in emacs "minibuffer-complete"?如何配置bash完成以扩展部分路径,如emacs“minibuffer-complete”?
【发布时间】:2012-08-18 17:52:00
【问题描述】:

我想配置我的 bash shell 来扩展部分输入的树结构,就像它执行 emacs“minibuffer-complete”命令一样。

假设我有两个文件夹,foo1 和 foo2。 foo1 包含一个子文件夹 sub1,而 foo2 包含子文件夹 wow。所以我有:

foo1/sub1/

foo2/哇/

现在如果我在 emacs 中打开文件,如果我键入

f/w

然后按 TAB 会自动将其展开为“foo1/wow/”。

我想在 bash 中有类似的功能。有什么想法吗?

【问题讨论】:

  • 开箱即用,f*/w* 应该为您提供类似的功能。为了让它更像你描述的那样,你需要编写一个完成函数。

标签: bash emacs path partial bash-completion


【解决方案1】:

虽然我不知道如何在 bash 中执行此操作,或者即使可能,但我知道如果您将 shell 更改为 zsh,则可以完成。

默认情况下它是不启用的,我也不知道如何启用它,但我使用zsh grml config,它启用了你所说的那种扩展。

Zsh,尤其是结合上述配置,还有许多其他有用的功能。

如果您不愿意更改外壳,那么恐怕这不是一个有用的答案。

【讨论】:

    【解决方案2】:

    你可以反过来使用 emacs M-x shell 命令。它打开一个带有自动完成功能的 Shell 缓冲区,就像在 minibuffer 中一样

    【讨论】:

      【解决方案3】:

      披露:我是该项目的作者

      我已经编写了在 bash 中启用此类完成所需的完成函数:https://github.com/sio/bash-complete-partial-path

      希望你会发现这个项目很有用

      【讨论】:

        猜你喜欢
        • 2012-07-25
        • 1970-01-01
        • 2014-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多