问题标签 [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.
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>
有什么建议么?
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/
,但我也没有。
linux - 如何在 linux 终端中自动完成双字符?
如果我写“(”一些编辑自动完成它的孪生“)”字符。撇号也是如此。我可以做些什么安全的事情来在 bash 终端中实现这一点?
谢谢
bash - 完成特定的文件名和目录
如果我希望 Bash 只为我可以运行.foo
的命令完成带有扩展名的文件名bar
但是,这会禁止完成文件之前的.foo
目录。如何保存目录的完成?
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
这样做吗?
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/
制表符完成中的任何内容?
bash - 嵌套 for 循环问题不会移动到下一个文件
所以一切正常,但它应该移动到下一个文件的 for 循环。当我运行我的脚本时,我注意到 STAT 命令的所有错误都不起作用,因为在它执行第一个文件之后它仍在尝试 STAT 该文件而不是列表中的下一个
git - Git PS1 污垢状态显示未记录的“#”符号
我在 Mac 上,我通过 brew 安装了 git 并获取了git-completion.bash脚本文件。
我已导出GIT_PS1_SHOWDIRTYSTATE=1
变量以显示当前分支的状态。
最后,我$(__git_ps1 '(%s)')
在我的PS1定义中包含了 。
当我四处阅读
但无论我的提示显示什么 (name_branch #)
。我不知道#符号应该是什么意思。我也找不到这个文件的官方仓库或文档。
有什么提示吗?
谢谢
编辑:这是我的 PS1:
我还想添加__git_ps1
仅在 git 目录上正确激活的内容,但无论如何它都会显示#符号。
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
,但这反而给出了文件名的建议,而不是最初的路径。
bash-completion - Bash选项卡完成不起作用
我正在尝试解决为什么 bash 选项卡完成无法在我的 fedora 19 桌面上运行。恐怕我只知道还有什么可以添加到这可能是相关的。