问题标签 [bash-completion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
2988 浏览

git - 带有文件名支持的 Git bash 完成?

是否有支持文件名完成的 bash 完成脚本?我主要使用 mercurial,在那里我可以输入:

它将显示/完成所有修改过的测试文件。它适用于大多数子命令,即hg add <tab><tab>只会列出未跟踪的文件。它真的很方便。

来自 git contrib 的 bash 脚本接缝不支持这一点。有没有其他选择,或者你如何在命令行上使用 git?

编辑 2015

git-completion.bash从~1.8.2开始支持完整的文件名完成

0 投票
3 回答
11438 浏览

bash - 选项卡上的 Bash 变量扩展完成

我正在运行 Ubuntu 11.04,当我尝试在以变量开头的路径上使用 bash 中的制表符完成时,我看到了一些奇怪的行为。如果我有 TOP=/scratch,我尝试制表符完成:

cd $TOP/foo

它变为:

cd \$TOP/foo

我希望它完成为: cd $TOP/foobar 或 cd /scratch/foobar 但我会接受它,只是不改变行并要求我取消转义 $。

有谁知道我应该在 bash/readline 的哪个位置解决这个问题?

0 投票
1 回答
667 浏览

bash - 需要更人性化的完成环境变量

假设我们有这样的环境:

开箱即用,$TEST 的 bash 完成非常不一致。证人:→



将此与例如 tcsh 完成完成的方式进行比较,后者总是完成$TES$TEST/(如果$TEST扩展为目录名)或到$TEST(如果没有)并且从不扩展任何内容。在我的傲慢看来,这就是正确的事情,而 bash 完全错误。

所以问题很明显。是否有可能让 bash 也做正确的事情,如果可以,怎么做?我试图理解手册,但没有多大成功。

0 投票
1 回答
1695 浏览

bash - 可以以编程方式调用 bash 完成吗?

我想要的是一个我可以从程序中调用的函数,因此它完成了 bash 给出命令行和按下 TAB 的位置的方式。

将返回相同的东西

我还没有看到任何方法可以做到这一点。

0 投票
2 回答
495 浏览

bash - 没有空格分隔的单词的 Bash 补全

我正在完成一个需要像“一:二:三”这样的参数的命令。

用最简单的术语来说,我希望 ':' 像默认的空格字符一样被处理。有没有一种我想念的简单方法来做到这一点?

我发现 ':' 在 COMP_WORDBREAKS 中,但 COMP_WORDBREAKS 中的字符也被视为单词。

所以如果命令行是:

COMP_CWORD 为 3,COMP_WORDS[COMP_CWORD-1] 为 ':'

为了比较,如果命令行是:

COMP_CWORD 将为 2,COMP_WORDS[COMP_CWORD-1] 将为“一”

更糟糕的是,如果你在 ':' 定界符之后点击 [TAB],它的作用就像一个空格:

现在 COMP_CWORD 将为 2 并且 COMP_WORDS[COMP_CWORD-1] 将为“一”。

我可以很容易地自己从 COMP_LINE 解析命令行,但更好地找到一种方法来让 ':' 在我的自定义完成中表现得像 ' '。可能的?

0 投票
2 回答
231 浏览

vim - 是否可以为 :! 启用 bash_completion 或 :r !在 VIM 中?

我可以使用 :shell 输入当前目录并运行命令。bash_completion 工作正常。

但是如何让 bash_completion 在:! 命令:r !命令箱?

注意。我是 Emacs 用户和 Emacs M-!命令不允许这样的事情(还有Mx shell,你需要Mx 术语来获得 bash_completion)。

0 投票
5 回答
490 浏览

bash - zsh 或 bash 可以扩展引用目录的历史表达式吗?

例如,假设我刚刚复制了一些东西:

我想像这样使用历史替换:

!!:2当我点击 [tab] 时,我很惊讶 zsh 没有为我扩展。在对历史论点的更复杂的引用中,我可能真的想要在返回之前进行扩展,所以我可以肯定地知道我提到了正确的论点。有没有办法让它做到这一点?(我希望这是默认行为。这是默认行为,我在某种程度上无意中禁用或破坏了吗?)

如果zsh做不到,可以bash吗?

更新:如果 zsh 引用文件而不是目录,则 zsh 将扩展历史表达式:

如果它只是一个任意字符串,它将扩展它:

但是,如果您尝试将某些内容移动到目录中,则不会。它看起来越来越像这一定是一个错误。

0 投票
2 回答
156 浏览

git - bash / git中分支和文件完成之间的冲突

我正在为 git 使用 bash 完成脚本。但是,在某些情况下它不起作用。假设我有一个分支 foo-branch 和一个文件 foo-file. 如果我想丢弃文件中的更改,我会经常这样做:

这立即完成到 foo-branch。通常,如果有多个完成选项,我会收到一个铃声,另一个选项卡会显示选项。在这种情况下,有没有办法让完成工作也像这样工作?还是 git 完成总是优先于文件名完成?

编辑:我浏览了 bash 手册页并找到-o plusdirs了,我将其添加到complete指令中。这行得通;我将不得不尝试一段时间,看看它是否不会导致不带文件名参数的命令出现问题。

0 投票
5 回答
2678 浏览

bash - bash 自动补全:为可能的补全添加描述

是否可以让 bash 自动完成看起来像 Cisco IOS shell 中的那样?

我的意思是为每个完成添加简短的描述,如下所示:

其中 10.10.10.10 和 10.10.10.11 是可能的完成,而 routerA 和 routerB 只是描述(不被执行)。

我知道 bash 可以使用“完整 -W”完成命令,但它能够为它们打印描述吗?

0 投票
1 回答
158 浏览

bash - bash 在完成命令时可以省略备份文件吗?

在完成命令、$PATH 中的可执行文件和所有文件时,我想省略名为 #foo# 和 bar~ 的文件。我不介意放置这些备份文件,但在完成命令时不希望看到它们。我是否需要为此编写一个 bash-completer 函数?

这是我正在谈论的提示中第一个单词的完成;