问题标签 [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 投票
6 回答
22150 浏览

git - Git 完成和 PS1 不工作:Ubuntu 12.04 上的“sudo -s”或“sudo su”上的“__git_ps1:找不到命令”

我安装了 git 和 git-flow 完成,将这些行添加到 .bashrc 的 root 和 Ubuntu 12.04 机器上的 normal_user:

当我以 root 或 normal_user 身份登录时,git 完成工作。但是,如果我使用“sudo -s”或“sudo su”,则 git 完成功能不起作用,并且每次按回车键时都会不断收到“__git_ps1:找不到命令”。我试图删除“源”命令并使用“apt-get install bash-completion”(bash-completion 已经安装)。因此,即使没有 2 个来源,我也会得到完全相同的行为。

任何人都知道问题是什么以及如何使其工作?

0 投票
1 回答
409 浏览

bash - Bash 完成命令

在我的职能中,我有

这应该列出所有以 notes_ 开头的命令以及某个目录中的所有文件,并且在调用时会这样做notes --complete。但是,当我尝试使用制表符完成时

它只显示文件而不是命令?

0 投票
5 回答
15903 浏览

bash - 让“完整”和“菜单完整”一起工作

我发现 Bash shell 支持一种与“传统”自动完成不同的自动完成,其中所有可能性都列在下一行中。

使用“传统”自动完成功能,如果我键入ch然后按下Tab键,我会得到如下信息:

但是,如果我将以下行添加到我的/etc/inputrc(将 Tab 键重新映射到内置menu-complete函数):

然后 shell 的行为发生了变化:要完成的单词被替换为“内联”,从可能的完成列表中找到一个匹配项,如果我再次按 Tab 键,该单词将被下一个匹配项替换。

我发现这很有用,但我仍然想保留传统的自动完成并将其绑定到 key combination Ctrl + Tab/etc/inputrc因此,根据readline库文档的建议,我在文件中添加了以下行:

但是,添加这一行似乎只能同时Tab调用Ctrl-Tab传统complete函数。

有谁知道我做错了什么?

提前致谢!

0 投票
3 回答
361 浏览

bash - 如何配置bash完成以扩展部分路径,如emacs“minibuffer-complete”?

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

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

foo1/sub1/

foo2/哇/

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

f/w

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

我想在 bash 中有类似的功能。有任何想法吗?

0 投票
1 回答
630 浏览

bash - 具有增量目录完成的 bash 可编程选项卡完成

我有一个可以接受大量有效参数的程序。其中许多具有共同的前缀,并且位于目录树结构中。这些选项通常不存在,有些目录可以带或不带斜线使用,但有些只能不带斜线使用。

如果我已经有 bash 完成,它会显示这个替代列表并在我按下并部分完成参数时更改命令行,如下所示:

如何将其更改为 bash 完成,就像常规文件/目录完成一样:

0 投票
1 回答
928 浏览

bash - bash 历史 CTRL+R 行为

有时我尝试通过CTRL+搜索某些命令R但没有找到,而我最近使用它或通过CTRL+搜索R成功。

在我运行“历史”之后,我能够再次找到该命令。

这种行为正常吗?如何改变?

0 投票
2 回答
221 浏览

bash - teamocil 的 bash 完成

我正在尝试为teamocil定义 bash 自动完成,这样当我键入teamocil <tab>它时,它应该以文件夹中的文件名完成,~/.teamocil/而没有文件扩展名。网站上有一个例子zsh

我怎么能用这个bash

编辑:受 michael_n 回答的影响,我想出了一个单行:

0 投票
2 回答
787 浏览

bash - bash 完成不像以前那样工作——没有转义文件名中的空格和奇怪的东西等

好的,我只是不明白为什么这不能自动工作。

当我在我的 mac 上工作时,当我在 bash 中自动完成时,空格和其他奇怪的字符会自动转义,但在我的 ubuntu 机器上,它们不会。更糟糕的是,如果我确实转义了角色,然后尝试自动完成,转义就会消失。为什么 debian 的 bash 不完全知道如何处理需要开箱即用的空格和其他字符?

0 投票
1 回答
2551 浏览

bash - 为什么bash中的反斜杠?

我在 ~/.bashrc 中导出了一个变量,如下所示(后跟 source ~/.bashrc)

当我在命令行上时,我尝试通过以下方式访问 $w 的子目录

在此之后,当我按 Tab 键时,会出现一个神秘的反斜杠

它会禁用进一步的制表符补全。为什么?可能并不vi具体,因为即使使用ls.

运行 Ubuntu 11.04 的 Bash 版本 4.2.24(1)-release (i686-pc-linux-gnu)

编辑 解决方法:在点击选项卡之前点击 Esc+Ctrl+E。

0 投票
6 回答
5009 浏览

bash - 在查找文件时让 compgen 在目录中包含斜杠

我想从我的自定义完成中获得以下行为

给定

我想得到这个

我认为那compgen -f f会输出foo faz/,但它输出foo faz对我没有多大帮助。

我是否需要对输出进行后处理,或者是否有一些神奇的选项组合来完成这项工作?