Questions tagged «autocomplete»

交互式程序(如外壳程序和文本编辑器)提供的一项功能,可插入文本以完成用户可能打算编写的单词或短语。

2
如何为特定命令指定自定义自动完成功能?
有没有一种方法可以让bash确切知道在双击选项卡时显示什么?例如,我有一个scpy需要几个参数的python脚本。例如,例如apt-get,如果您双标签给您 autoclean build-dep clean dselect-upgrade清除源升级 自动删除检查dist-upgrade安装删除更新 有没有办法对自己的脚本/程序执行此操作?我需要将我的python脚本包装在bash脚本中吗?

1
命令行工具如何具有自己的自动完成列表?
Ubuntu中的Bash如何知道工具的特定动作列表? 例如,如果我键入apt-get和tab两次,我只会看到删除,更新,升级... etc,但是看不到其他命令或当前目录中文件的操作。 我正在Go中开发命令行工具,并希望为支持它的发行版提供此功能。

4
如何自定义Bash命令完成?
在bash中,使用complete内置的命令设置自定义的命令参数完成很容易。例如,如果对于带有的摘要的假设命令foo --a | --b | --c,则可以执行complete -W '--a --b --c' foo 您还可以自定义,当你按下你完成Tab在空提示符下使用complete -E,例如,complete -E -W 'foo bar'。然后在空白提示下按Tab键将仅建议foo和bar。 如何在非空提示下自定义命令完成?例如,如果我坐在: anthony@Zia:~$ f 如何自定义完成,使按Tab键始终完成foo? (我想要的实际情况是locTAB→ localc。而促使我问这个问题的我的兄弟希望通过mplayer来解决这个问题。)


1
完成cd OLD NEW的第一个参数
在中zsh,cd命令具有两个参数的形式:cd OLD NEW更改为${PWD/OLD/NEW}。使用新式的完成系统,zsh能够完成NEW:第二个参数根据OLD可以替换为现有目录的内容完成。但是第一个参数仅在现有目录中完成。 OLD除了完成现有目录之外,zsh如何让zsh提供可能的值? 例如,如果当前目录是,/path/to/foo并且还有目录/also/to/foo和/path/to/foo/prime,则cd pTab完成p到prime。如果我打算运行,cd path also那么我希望zsh也可以path作为补充。怎么样? 使用第二个参数的已经输入的值来限制第一个参数的可能性是一个加号,但是独立完成第一个参数也可以。

4
在vim自动完成列表中选择一个项目而不插入换行符
vim的一个相当烦人的功能是,如果您处于插入模式并执行自动完成(Ctrl-N),则将箭头键向下移至所需项目,然后按Enter键,然后它将插入该项目,但还会插入一个换行符然后必须删除。 有没有一种方法可以从自动完成列表中选择一个项目而又不需要其他多余的换行符?
22 vim  autocomplete 

1
将前一个命令的参数添加到zsh完成
在zsh(以及bash)中,您可以使用一些历史单词扩展来表示先前命令的参数。 此示例显示了!:#扩展历史记录中从上一个命令获取第二个参数: % echo foo bar baz foo bar baz % echo !:2 echo bar bar 我经常会忘记一个特定参数是什么#参数!:#,当我记住它是哪个arg时,键入并不总是那么快。我知道meta-.要替换最后一个参数,但是有时它不是我想要的最后一个参数。 我想添加上一条命令中的参数作为建议,以完成我在zsh中键入的任何命令。 我能够弄清楚如何创建一个shell函数,该函数可以从最后一个命令创建一个参数数组(0..N)并将其绑定到特定命令。 _last_command_args() { last_command=$history[$[HISTCMD-1]] last_command_array=("${(s/ /)last_command}") _sep_parts last_command_array } # trying to get last_command_args to be suggested for any command, this just works for foo compdef _last_command_args foo 这是仅在我按以下位置的Tab键时完成foo的样子<TAB>: % echo bar …
21 zsh  autocomplete 

2
如何在Debian上实施软件包安装建议?
我注意到在Ubuntu上,如果输入以下内容: mc 并且它没有安装,我得到以下消息: The program 'mc' is currently not installed. You can install it by typing: sudo apt-get install mc 但是在Debian中,这不可用。它只给出“ -bash:/ usr / bin / mc:没有这样的文件或目录”消息。如何在Debian的bash命令行中实现相同的功能?是的,我知道,如果这是我想要的包装建议,则可以使用apt-cache search进行正则表达式搜索。但是,我希望在键入程序名称时立即提出更简单的建议。 根据讨论,该功能由package command-not-found提供。但是,即使在安装它并安装bash-completion软件包之后,在Debian bash shell上也不可用。

1
带有zsh的git完成:带空格的文件名未正确转义
Git完成: 我无法在系统上使用git的文件名自动完成功能。我在OS X(10.9.3)上将zsh(5.0.5)与git(1.9.3 )一起使用。两者zsh和git都已通过自制软件安装。(完整版本的输出在文章的底部。) git的文件名完成不像我期望的那样插入空格。当我输入名称中带有空格的文件名时,shell将插入文件名而不会出现空格。zsh的内置补全功能不会执行此操作,而gits可以。 这是我所看到的示例。 我有一个存储库,其中包含一些名称中带有空格的文件。 % ls -la test test four - latest.txt test three.txt test two 当我使用制表符补全插入文件名时,shell反斜杠会按预期转义文件名。 % echo "testing" >> test<tab> 连按三次标签后,会自动完成此操作。 % echo "testing" >> test\ four\ -\ latest.txt ––– file test test\ four\ -\ latest.txt test\ three.txt test\ two git status 以引号显示这些文件名(它完全了解最新情况): % git …
20 zsh  autocomplete  git 

3
禁用Bash中某些包含大量文件的目录的制表符完成功能?
我正在处理大量文件,这些文件保存在目录中。每次我进入该目录并无意中按Tab两次时,显示匹配模式的文件花费的时间太长(可能超过一分钟),而我对此行为感到非常恼火。 例如,我的目录结构是: my-project/ ├── docs/ ├── data/ <---- contains around 200k files. └── analyser/ 由于我仍然喜欢补全,因此是否只能在data/目录中禁用此功能?例如设置5秒钟的超时时间,还是在特定目录中自动关闭完成功能的脚本?

3
禁用bash选项卡完成
是否可以在按Tab时禁用bash的自动完成功能? 我想这样做的原因是,我经常将编辑器中的代码粘贴到终端中,在该编辑器中,我使用制表符而不是空格来缩进。 不,您不能说服我使用空格而不是制表符。

1
用于自定义命令的动态zsh自动完成
我正在尝试为我编写的一些自定义函数编写完成函数,但是即使是最基本的函数,似乎也很挣扎。 一个示例函数是: function eb_instances() { if [ "$#" -ne 2 ]; then echo "Usage eb_instances <aws profile name> <environment name>" echo "e.g.:" echo " eb_instances production kraken-prod-api" return 1 fi aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" "Name=tag:Name,Values=$2" --profile=$1 --output=json | jq -r ".Reservations[].Instances[].PrivateIpAddress" } 这有两个位置参数,<aws profile name>以及<environment name> 我希望<aws profile name>可以通过运行来动态获得 …
19 zsh  autocomplete 

5
Debian-apt(not apt-get)自动完成功能不起作用
我使用的是Debian Jessie 8.6。我注意到apt-get按包和命令选项卡时会达到预期的bash自动补全功能,但是尝试与它一起使用时apt不起作用。我记得曾经在xubuntu 16.04上使用过它,但是我觉得很奇怪,在这里不起作用。有没有办法为命令启用它apt?如果是这样,怎么办?

1
Zsh制表符补全无法部分路径所需的工作
我想要中的文件和目录不区分大小写的模糊完成zsh。阅读了几个小时的手册后,我想到了以下内容: zstyle ':completion:*:*:*:*:globbed-files' matcher 'r:|?=** m:{a-z\-}={A-Z\_}' zstyle ':completion:*:*:*:*:local-directories' matcher 'r:|?=** m:{a-z\-}={A-Z\_}' zstyle ':completion:*:*:*:*:directories' matcher 'r:|?=** m:{a-z\-}={A-Z\_}' 此外,我想按TAB一次以显示可能的补全,仅在有一个补全的情况下才修改输入的内容。然后再按TAB一次将使我进入“菜单完成”模式。根据手册,我想到了以下内容: zstyle ':completion:*' menu select 现在,在一种情况下,一切都会按预期进行。我有两个文件夹,Desktop并且.rstudio-desktop在主目录中。既然有了setopt globdots,我希望输入以下内容: $ cd ~/dktop<TAB> 保留输入的命令,并显示为完成候选Desktop和.rstudio-desktop。相反,它将删除 dktop,剩下以下内容: $ cd ~/ 我看了所有相关的手册,指南,Stack Exchange问​​题以及其他各种来源。但是无论我做什么,我都无法完成这项工作。 不过,有趣的是,如果我在主目录中并键入以下内容,则一切都会按预期进行: $ cd dktop<TAB> 也就是说,这仅是路径的非前导段的问题(您可以看到C-x h,这对应于directories标记而不是local-directories所使用的标记)。 为了易于重现,此处提供了~/.zshrc一种可以重现上述情况和行为的工具(在zshHomebrew 的全新El Capitan虚拟机上进行了测试)。
17 zsh  autocomplete 

1
Zsh中“ ../”的制表符补全
在bash中,我可以使用制表符补全功能将一个目录上移并再次下移到另一个路径。例如,假设我在$HOME/folder1,我想cd给$HOME/folder2。$HOME只有两个子目录folder1和folder2。 在bash中,我可以输入 cd ..[TAB]f[TAB]2 并最终在$HOME/folder2。在我的最新zsh安装中,按cd ..[TAB]会产生一个子目录的列表,这些子目录的名称中$HOME/folder1有两个.。 有没有一种简单的方法可以使我习惯?还是有什么更容易在zsh中实现我想要的?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.