问题标签 [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 选项卡完成更改了行为
很长一段时间以来,我已经习惯了能够输入如下内容:
$opt/foo/m
等等以在不同的环境中导航我的项目。这真的很有用:只需设置 $opt(例如,/home/$USER/projects/opt - 然后从您的开发用户转到 qa,再进行直播,而 $opt 就是 $opt。
在 bash4.2 发布时,这种行为已经改变。现在制表符完成会导致转义的 $ 符号。
$opt/foo => \$opt/foo <= 完全不是我的意思!
当维护人员正在讨论这应该如何工作时,我想找到一套新的习惯,我可以用来回到我的舒适区。什么是好技巧?我的手指可以学习的东西,配置一些根目录并从那里开始,而不用担心我在哪里。
substring - Bash 子字符串文件完成
bash 部分/子字符串文件完成是否类似于 zsh 的功能?
也就是说,不需要用户输入文件名的前缀,然后是tab;用户还可以输入文件名的子字符串,然后输入制表符。
说一个目录包含一个文件abcdef
,那么不仅会ab<tab>
补全这个文件名,还会bc<tab>
等等cd<tab>
。
git - 如何让 GIT_PS1_SHOWDIRTYSTATE 不针对裸仓库运行?
因此,我为我的 git 安装设置了 bash 自动完成功能,这太棒了。但是,我有一个裸仓库,我偶尔必须直接与 (git reset
例如) 交互,并且每当我cd
进入裸仓库时,GIT_PS1_SHOWDIRTYSTATE
我必须向我显示正常工作树状态的设置运行,并且我看到这条消息:
fatal: This operation must be run in a work tree
我认为,它试图git status
对那个 repo 运行一个,但是光秃秃的,它会报告一个错误。
每次在我的裸仓库中做任何事情时,我都不想看到那个错误;它已经让我失望了几次。
bash - 在后台运行 bash 命令而不打印作业和进程 ID
在 bash 中在后台运行进程相当容易。
但是输出很冗长。第一行打印后台任务的作业 ID 和进程 ID,然后是命令的输出,最后是作业 ID、状态和触发作业的命令。
有没有办法抑制运行后台任务的输出,使输出看起来与最后没有 & 符号的输出完全相同?IE:
我问的原因是我想将后台进程作为选项卡完成命令的一部分运行,因此该命令的输出必须不间断才能有意义。
terminal - 完成前缀显示长度在我的终端应用程序上不起作用
我在 .inputrc 上发现了很多问题,答案包括使用 Mac OS X terminal.app 的人。
但是我已经设置了这个属性,它并没有改变 readline 的行为。我在 Ubuntu 上尝试了相同的 .inputrc 并且成功了……</p>
我应该对 terminal.app 采取什么具体措施吗?
bash - Cshell 中的反向增量搜索
我在办公室使用 Cshell,它似乎没有反向增量搜索历史。有什么方法可以reverse-i-search
在 cshell 中启用(如 bash 中的那个)。
谢谢。
bash - 自动完成工具命令选项
cmmget
我的Linux 机器中有一个名称为可执行文件。它是一个命令行工具。我希望auto-complete feature
为该工具的不同选项开发一个。
命令的一些示例如下:
我的需要是在我键入 cmmget -d 并按 Tab 键时显示不同选项集的列表,例如等healthevents
。version
然后我可以从列表中选择所需的选项并完成命令。
这实施起来有多容易?有人可以发布一个链接,我可以参考开发这个要求吗?
python - Python argparse 和 bash 完成
我也想在参数中自动完成我的 python 脚本。
我从来没有真正理解过 bash_completion 是如何工作的(对于参数),但是在我深入研究之后我明白了:
- 它使用“完成”将完成功能绑定到命令
- 每个完成函数基本上都是参数解析器的副本
特别是第二点不是很好,因为我想让它自动生成。
最好的办法是,shell 在每个 TAB 处向我的程序询问要完成什么,但我的印象是这真的行不通,对吗?
第二种选择可能只是编写一个从 argparse 解析器到正确完成的 shell 函数的转换器。
bash - 异步加载 bash_completion 脚本
bash_completion
我脚本中的脚本.bash_profile
运行缓慢,导致新终端启动速度很慢。是否可以提供一个 shell 来运行命令,然后在后台获取 bash_completion 脚本?
bash - 自定义目录完成附加空格
我有以下目录结构:
我想输入cdw y<TAB>并得到cdw yyy/<CURSOR>结果,所以我可以添加cdw yyy/a<TAB>并得到cdw yyy/aa<CURSOR>
我想出的解决方案给了我以下内容:
cdw y<TAB> => cdw yyy<SPACE><CURSOR>
以下代码我到目前为止:
有什么想法有什么问题吗?在我看来,完成过程似乎已经完成,并且不再期待任何输入。