Bash cygwin制表符完成

Bash cygwin制表符完成,bash,cygwin,Bash,Cygwin,如何设置Cygwin以完成制表符 实际上,我确实自动拥有它,但它似乎并没有完成路径。如何设置它以完成路径?不是cygwin本身“有”选项卡完成;你用的是贝壳。默认情况下,cygwin shell是bash,它确实为路径上的可执行文件和当前目录中的文件提供了基本的选项卡完成。它不适合你吗?Cygwin只是一个环境;与您交互的程序称为shell。有许多shell—bash、zsh和其他shell 对于bash,我发现可以修改您的.inputrc文件。Cygwin路径通常以/cygdrive/c开头(

如何设置Cygwin以完成制表符


实际上,我确实自动拥有它,但它似乎并没有完成路径。如何设置它以完成路径?

不是cygwin本身“有”选项卡完成;你用的是贝壳。默认情况下,cygwin shell是bash,它确实为路径上的可执行文件和当前目录中的文件提供了基本的选项卡完成。它不适合你吗?

Cygwin只是一个环境;与您交互的程序称为shell。有许多shell—bash、zsh和其他shell


对于bash,我发现可以修改您的.inputrc文件。

Cygwin路径通常以
/cygdrive/c
开头(当然,替换您正在使用的任何驱动器号)。因此,要完成
c:\ProgramFiles
,必须键入(例如)/cygdrive/c/Prog,然后按TAB键


另外,请注意Cygwin是区分大小写的,因此
/cygdrive/c/prog
由于小写字母“p”,无法完成到
c:\Program Files

我回答这个问题是因为答案似乎与先前接受的答案相比有所改变。 我刚刚安装了Cygwin,发现bash完成实际上是一个独立的安装模块,“bash完成”。默认安装中未选择它,因此需要显式安装/更新它


每次我在新系统上安装Cygwin时,我都很难让tab completion按我希望的方式工作,这是滚动每个制表符笔划的完成结果,而不是列出可能的结果,并要求我继续键入,直到找到一个唯一的,将实际完成的制表符按

使其滚动浏览有效结果的方法是在
~/.bashrc
文件中放置以下命令字符串:

bind TAB:menu-complete

我想我是bash,因为我读到这是默认值。在您指定的说明中,它表示应该自动工作。但事实并非如此。它提到更改$HOME/.inputrc中的特定细节,我检查了这些细节,但那里没有该文件。你有什么想法吗?我应该在互联网上的某个地方找到这样的文件并放在那里吗?谢谢您好,Michelle,您应该创建一个空文件,并按照说明向其中添加命令。如果主目录中没有此类文件,则使用默认设置。您会发现这是UNIX中的一种常见模式——使用放置在home dir中的隐藏(从开始)配置文件。作为一个快速测试,如果在bash提示符下键入whoam并按TAB键,它是否完成到whoami.exe?它应该,没有任何额外的配置在您的一部分。有趣!我确实完成了。。那么也许它只是没有完成路径。。我确实试过了。有什么想法吗?啊,一直以来都是区分大小写的:)是的,这很难适应Cygwin。对于区分大小写,请将
设置完成忽略大小写添加到
~/.inputrc
中,但Cygwin的“root”目录就是您安装它的目录。例如,我的Cygwin主目录既是
/cygdrive/c/home/myname
又是
/home/myname
默认安装不再包含bash autocomplete模块,因此根本没有autocomplete,除非您显式安装它。(请参见下面cowlinator的回答。)