问题标签 [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 回答
536 浏览

bash - 在 vim 的 bash 完成中忽略文件扩展名

我写了一个小的 bash 函数来为 vim 提供补全。功能如下:

我试图通过定义 _VIM_IGNORE 变量并将 FIGNORE 设置为它来忽略扩展名为 pdf、dvi 等的文件,但这不起作用。

知道如何做到这一点吗?

谢谢。

0 投票
2 回答
1098 浏览

bash - zsh:如何设置自动完成,以便在光标位于文本之间时插入完成?

在我的 bash shell 中,当我的光标位于文本之间,并且我点击Tab时,它会自动完成文件名,当我点击 时Enter,它会在光标处插入完成,并且光标之后的所有内容都会保留,例如

按下Tab键,现在我看到了:

我喜欢这种行为,尤其是在执行mvorcp并且想要修改原始文件名时。我怎样才能让zsh做同样的事情?

0 投票
1 回答
2771 浏览

bash - bash 中的文件夹和文件名是否有自动完成功能?

我需要导航到某个目录,然后执行位于那里的脚本。

我正在使用cd folder_name导航到下一个目录。

一个文件夹的名称很长(带有空格)。有没有办法只输入前几个字母,然后使用快捷键自动完成第一个匹配的名称,或者浏览可能的匹配项?

如果我想对某个文件(例如chmod XXX file_name)执行命令也是如此,有没有办法在我输入文件名的几个字母后让名称出现?

我使用的 shell 是 OS X 10.7.4 中的 bash-3.2。

0 投票
1 回答
234 浏览

bash - 重定向符号后的 Bash 完成

当我尝试在重定向符号之后完成路径时,bash 完成的行为就像它仍在尝试在重定向之前完成命令的参数一样。

例如:
dpkg -l > /medTab

通过点击Tabafter/med我希望它完成路径/media/,但它什么也不做。

有没有我可以更改的设置以使其按预期工作?我正在使用 Ubuntu 12.04 提供的 bash shell。

0 投票
1 回答
513 浏览

bash - 从脚本提示符完成 ZSH(如 BASH 的 read -e)

在 bash shell 脚本中,您可以提示用户输入并使用-e标志为用户启用 readline 完成。(例如read -e -p 'GET YOUR FILE: ' file,将允许用户使用制表符补全来查找文件。)

ZSH 的补全更高级和可扩展,所以我希望我能找到一个允许类似行为的 zsh 内置函数。

0 投票
1 回答
302 浏览

bash - bash完成目录样式部分建议打印

我正在编写一个脚本,该脚本to在 bash 中为文件系统位置添加书签(对 zsh 的支持有限)。你可以在这里找到源代码:https ://github.com/resultsreturned/to

该脚本支持所有操作的选项卡完成。

假设您已“标记”文件夹的位置:

然后,该脚本允许您访问书签的子文件夹,如下所示:

按两次 tab 将给出建议:

但是,我宁愿建议仅打印当前未输入到缓冲区的路径部分。例如,cd命令:

请注意建议如何仅包含当前正在输入的目录级别。

所以问题是,你如何控制 bash 打印建议的方式?是否可以独立于完成词表(用于 compgen/complete)来执行此操作?有没有办法定义一个正则表达式来处理完成单词列表以作为建议打印?

0 投票
2 回答
248 浏览

ruby-on-rails - 任何用于自动完成/建议迁移版本的 bash/rails 插件?

每次我必须在我的 rails 应用程序中运行/重做特定迁移时,我都必须通过以下步骤来获取确切的版本号:

  1. grep - 在 db/migrate 文件夹中搜索包含我需要的模型/表名称的文件,或者
  2. 定位 - 与 grep 类似,我搜索包含模型/表名称的文件并使用 grep 将其通过管道过滤掉 db/migrate 结果,或者
  3. ls - 使用 ls db/migrate/2xxx 并继续使用自动完成,直到我缩小我正在寻找的确切迁移范围

我想知道是否有更简单的方法可以做到这一点。也就是说,当我开始输入时可能会建议版本号的插件rake db:migrate:redo VERSION=

是否有任何 bash/rails 插件可以做到这一点?

0 投票
9 回答
11412 浏览

bash - cygwin中bash的加载时间慢

目前 bash 需要大约 2 秒才能加载。我已经用-xflag 运行了 bash,我看到了输出,似乎 PATH 在 cygwin 中被加载了很多次。有趣的是我在 linux 环境中使用相同的文件,但它工作正常,没有重新加载问题。以下是否会导致问题?

0 投票
3 回答
3091 浏览

bash - bash-completion - 在第一次调用命令时定义的完成函数

我添加了一个新的 alias scp_using_rsync,它使用 rsync 通过某些选项通过 SSH 复制文件。我想将 scp 的 bash 完成链接到这个别名。

当我添加这一行时它起作用:

唯一的问题是我注意到,_scp只有在我在该 shell 中尝试使用 ssh/scp 至少一次完成制表符之后,才在我的 bash 环境中定义。所以如果我直接scp_using_rsync在一个新的 shell 中运行,我会得到_scpnot found 错误。

在尝试 ssh 或 scp 命令的 tab 补全之前和之后的新 shell 中的输出typeset -F清楚地表明,在第一次尝试 tab 补全之后定义了以下函数:

这些功能似乎是/usr/share/bash-completion/completions/ssh在我的系统中定义的。

这些是我的两个相互关联的问题:

  • 第一次尝试完成时,bash 如何确定在哪里自动获取定义并定义它们?
  • 我应该如何scp_using_rsync以类似的方式将 bash-completion for 链接到 scp 的 bash 完成?
0 投票
1 回答
385 浏览

php - PHP生成的目标的Makefile bash自动完成问题

在一个大型 Makefile 托管项目中,我最近添加了一些 PHP 生成的目标,并且 bash 完成停止工作:按 [tab] 不会触发完成,但会插入一个制表符。

我将问题隔离到这个最小的 Makefile:

如果我使用 bash-echo、python 或 ruby​​ 版本的 TARGETS 宏,bash 补全会按预期工作,但如果我使用 php 版本,bash 补全就变得无用了。

我可以在以下位置重现此问题:

  • Mac OS 10.7.5,默认 /usr/bin/php (5.3.15),默认 /bin/bash (3.2.48(1)-release),bash_completion 1.3_4(与 macports 一起安装)
  • Ubuntu 10.04,默认 /usr/bin/php (5.3.5-1ubuntu4ppa1),默认 /bin/bash (4.1.5(1)-release),默认 bash-completion 1:1.1-3ubuntu2

有人知道出了什么问题以及可以做些什么吗?