我设置了一堆 bash 完成脚本(主要使用 bash-it 和一些手动设置)。
我还为诸如gcofor 之类的常见任务设置了一堆别名git checkout。现在我可以输入git checkout dTab并develop为我完成,但是当我输入时gco dTab它没有完成。
我假设这是因为完成脚本正在完成git并且它看不到gco.
有没有办法以通用/编程方式让我的所有完成脚本与我的别名一起使用?使用别名类时无法完成就违背了别名的目的。
可能的重复:
Bash 中不区分大小写的选项卡完成
有什么办法可以使 bash 中的 tab-completion 不区分大小写吗?例如,如果我调用了一个文件Hello.txt并尝试通过键入he后跟它来完成它的制表符Tab将不起作用。我必须通过键入He(注意大写 H)和Tab. 有什么方法可以设置 bash,这样我就不必在键入时保留大小写并尝试用 tab 完成它吗?
我在之前的 arch 安装中完全切换到 zsh,我喜欢它主要是因为 arch 是将你的文档、下载、音乐和 ~ 目录中的此类目录大写的发行版之一。由于我不习惯这样做,并且我对终端中的几乎所有内容都使用 Tab 补全,与 bash 相比,zsh 对我来说就像天堂......我发誓这个功能曾经是自动激活的,因为我不记得必须调整任何让它以这种方式工作的东西。我可能是偶然发现的。xD 但是我非常希望使用 zsh 作为我的主 shell 在我的新电脑上恢复这个功能,如果有人知道如何做到这一点,我非常感谢回复。我尝试激活完成配置中的每个选项,但这似乎并没有奏效......所以这把我带到了这里。
PS:我过去常常更新我的 Linux 专业知识,而我的知识已经变得陈旧了......我正在努力解决这个问题......(不使用 shift 键,就像可能……哈哈)
在我的 ubuntu 系统上启动 bash 大约需要 2 秒。如果我删除 .bashrc 中的加载 /etc/bash_completion 它会立即启动。当然,我不想放弃完成,我不认为加载该文件是延迟 2 秒的正当理由。
任何想法如何找出问题所在或如何加快速度。
我正在使用 bash,我想知道 bash 或其他 shell 中是否有任何插件允许我执行此操作
cat tfnislong.txt+[tab]完成cat ThisFileNameIsSoLong.txt就像 Sublime Text 中的选项卡完成一样。
有没有办法让 Vim 在命令模式下完成当前文件中的单词?说我有这个文件:
one
two
three
once
Run Code Online (Sandbox Code Playgroud)
然后我进入命令行模式
:myruncommand o|
Run Code Online (Sandbox Code Playgroud)
其中|表示光标位置。如何使 Vim 完整one或once在按下 Tab 时完成?
我正在尝试设置 bash 完成脚本,但遇到了一些麻烦。
我想设置它,以便列出的补全是匹配特定扩展名的文件或目录(可能包含也可能不包含该扩展名的文件)。
我遇到的问题是,我可以获得包含文件和目录的-o plusdirs -f -X '!*.txt'补全的唯一方法是使用类似的东西,但是当我让 bash 完成其中一个目录时,它只会在末尾添加一个空格,而不是削减。
_xyz()
{
local cur=${COMP_WORDS[COMP_CWORD]}
local prev=${COMP_WORDS[COMP_CWORD-1]}
#COMPREPLY=( $( compgen -f -X '!*.txt' -- $cur ) )
#COMPREPLY=( $( compgen -f -G '*.txt' -- $cur ) )
#COMPREPLY=( $( compgen -o filenames -f -X '!*.txt' -- $cur ) )
#COMPREPLY=( $( compgen -o dirnames -f -X '!*.txt' -- $cur ) )
COMPREPLY=( $( compgen -o plusdirs -f -X '!*.txt' -- $cur ) )
return 0
} …Run Code Online (Sandbox Code Playgroud) 我有一个目录,我将所有项目都放在其中,假设它~/projects是一个示例。我创建了一个名为的命令s,它接受一个参数,并将我移动到该目录中。例如:s foo将我移至~/projects/foo。
我想要的是某种类型的完成命令,它的作用就像cd这样我可以继续点击tab以进一步进入~/projects/...目录。
基本上,cd带有始终存在的前缀。
我在 中研究了 zstyle 完成man zshcompsys,但意识到我对它的了解还不够,无法正确理解它。
如果我输入cat ~/.bashr<TAB>然后它完成到cat ~/.bashrc.
如果我输入vim ~/.bashr<TAB>然后它完成vim /home/neil/.bashrc...
(它与 相同vi,别名为"vim"。)
我可以关掉它吗?
在 Windows 下,使用 PowerShell,是否可以使文件名建议(使用Tab密钥)像 Linux 下的 bash 一样工作?
假设一个目录包含 3 个目录:example1,example和examination.
在 Windows 上(默认情况下),如果您键入cd ex和Tab,它将自动建议cd .\examination。的后续使用Tab将在example1、example和之间轮换建议examination。
使用 bash(通常在 Linux 下),如果您键入cd ex和Tab,它将自动完成,直到文件名开始不同的字符:cd exam. Tabthen 的另一种用法表明哪些目录可用:
$ cd exam
examination/ example1/ example2/
Run Code Online (Sandbox Code Playgroud)
然后,如果您键入pand Tab,它将自动完成为example,依此类推(此处提供example1和之间的选择example2)。
有没有办法让文件名建议在像这样的树状搜索中工作,而不是在名称中旋转?
(我主要对文件名感兴趣。Bash 还可以根据文件类型细化这个选择,例如只有目录 for cd,这会很好,但是选择文件名本身就足够了。)
tab-completion ×10
bash ×5
shell ×2
vim ×2
zsh ×2
bashrc ×1
command-line ×1
linux ×1
performance ×1
powershell ×1
prefix ×1
ubuntu ×1
windows ×1