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

linux - 在路径中插入变量(bash 命令行)

请告诉我,我应该怎么做,在我键入时在 bash 命令行中插入变量名?

$A = ~/tmp/ 在 tmp 文件夹中,我有 tmp1 和 tmp2 文件夹。

我输入:cd $A<TAB>没有任何事情发生。如果我添加额外的 / 和类型cd $A/tmp1,它会在末尾添加额外的空间cd $A/tmp1<space>

我想要以下行为: cd $A<TAB>=====>cd ~/tmp/<without additional space>


有什么建议么?

0 投票
7 回答
15053 浏览

bash - Cygwin git 选项卡完成

我在 Windows 上安装了 Cygwin,默认包之一是 git tab 完成,但我没有 tab 完成。

我进行了一些搜索,发现一条说明默认情况下未启用它。我复制了skel .bashrc and .bash_profile to ~ and in .bashrc我取消注释的行以完成,然后重新启动控制台。依然没有。

然后我注意到 .bash_completion 文件中不存在/etc,所以我在网上找到了一份副本并将其放置在适当的位置,但我仍然没有在 git 中完成。

似乎也应该有一个/etc/bash_completion.d目录git/,但我也没有。

0 投票
0 回答
78 浏览

linux - 如何在 linux 终端中自动完成双字符?

如果我写“(”一些编辑自动完成它的孪生“)”字符。撇号也是如此。我可以做些什么安全的事情来在 bash 终端中实现这一点?

谢谢

0 投票
1 回答
72 浏览

bash - 完成特定的文件名和目录

如果我希望 Bash 只为我可以运行.foo的命令完成带有扩展名的文件名bar

但是,这会禁止完成文件之前的.foo目录。如何保存目录的完成?

0 投票
1 回答
546 浏览

bash - Bash 中的远程 URL 补全

我目前正在为 Bash 中的 svn 添加对远程 url 完成的支持。我目前正在使用修改后的 bash-completion-svn 来确定何时触发 URls 的完成,看起来像

我设法提取了 URL ( ) 的父目录部分并在其中svn+ssh://$HOST/$DIR调用svn ls

现在剩下的就是如何使用 URL 的目录部分和prefix_string在它后面输入的用户(可以是空的)来完成。我可以用compgen它来完成这项工作吗?

如果 url 中的最后一个字符是斜杠,则获取可能完成的列表,如果后缀为空,则获取完整目录。

目前我正在使用

为 URL 完成完成,例如

完成成例如

然而,无论如何它总是选择第一个选项,并且总是插入一个空格,即使我已经写了-o nospace。如果还有其他可能的匹配项(前缀a不是唯一的),我如何防止完成 compgen 完成,以及如何在不移动光标的情况下使这些匹配项打印在光标下方。只能complete这样做吗?

0 投票
1 回答
246 浏览

bash - Bash autocd & tab-complete 可以忽略 $PATH 中的特定文件夹吗?

我最近从 tcsh 转到 bash,并且一直在调整以适应不同的选项卡完成。

我使用shopt -s autocd所以我不需要在前面显式键入 cd ,这就是问题所在。

我唯一的问题是在我的 PATH 中/usr/local/bin/,并且在该文件夹中是一个名为This.Is.A.Really.Long.File.To.Execute.

不幸的是,我使用的 git 结构有路径~/git/company/This.Is/This.Is.A.Really.Long/This.Is.A.Really.Long.File/file.txt

因此,如果我在其中~/git/company/This.Is并键入This.I<TAB>它会立即完成This.Is.A.Really.Long.File.To.Execute,这是我的 PATH 中的可执行文件。

我无法更改文件夹结构或移动可执行文件,因为其他进程/脚本使用它。有没有办法保留autocd并特别忽略 /usr/local/bin/制表符完成中的任何内容?

0 投票
2 回答
99 浏览

bash - 嵌套 for 循环问题不会移动到下一个文件

所以一切正常,但它应该移动到下一个文件的 for 循环。当我运行我的脚本时,我注意到 STAT 命令的所有错误都不起作用,因为在它执行第一个文件之后它仍在尝试 STAT 该文件而不是列表中的下一个

0 投票
0 回答
428 浏览

git - Git PS1 污垢状态显示未记录的“#”符号

我在 Mac 上,我通过 brew 安装了 git 并获取了git-completion.bash脚本文件。

我已导出GIT_PS1_SHOWDIRTYSTATE=1变量以显示当前分支的状态。

最后,我$(__git_ps1 '(%s)')在我的PS1定义中包含了 。

当我四处阅读

但无论我的提示显示什么 (name_branch #)。我不知道#符号应该是什么意思。我也找不到这个文件的官方仓库或文档。
有什么提示吗?

谢谢

编辑:这是我的 PS1:

我还想添加__git_ps1仅在 git 目录上正确激活的内容,但无论如何它都会显示#符号。

0 投票
3 回答
3348 浏览

bash - Bash 完成:compgen 一个 wordlist 就好像它们是路径一样 - 只建议直到下一个斜杠

我正在为点文件管理实用程序编写 bash 完成脚本。该工具有一个命令dots diff [filename],将显示已安装的点文件和源点文件之间的差异。它还有一个命令dots files列出所有托管点文件的路径(相对于源目录)。我想用 files 命令的输出来完成 diff 命令。

这是文件输出的示例

使用这样的东西

有效,但是当 readline 列出可用选项时,它会列出完整路径(上面的列表)。

我希望它把这些词当作文件路径来对待,并且在列出建议时只列出第一个正斜杠。

例如,如果我键入dots diff [tab][tab]以下内容,则应打印

例如,如果我然后输入dots diff bash/[tab][tab]然后它会显示

理想情况下,我希望它实际上将其视为一条路径,以便将 readline 选项更改mark-directories为 off 将排除尾部斜杠。

我尝试过设置compopt -o filenames,但这反而给出了文件名的建议,而不是最初的路径。

这是我到目前为止的完成脚本

0 投票
1 回答
18688 浏览

bash-completion - Bash选项卡完成不起作用

我正在尝试解决为什么 bash 选项卡完成无法在我的 fedora 19 桌面上运行。恐怕我只知道还有什么可以添加到这可能是相关的。