Oli*_*ler 5 bash zsh tcsh tab-completion
我\xe2\x80\x99m是tcsh的长期用户,但现在所有的酷孩子似乎都在使用bash或zsh(也就是说,git或其他东西的完成模式可用于bash和zsh,很少用于tcsh)。
\n\n我的问题是,两个 shell 都有关于路径制表符补全的行为,这让我发疯,而且 I\xe2\x80\x99m 很难找到如何将它们更改为我喜欢的方式。
\n\n这里\xe2\x80\x99s 是我\xe2\x80\x99m 过去在 tcsh 中所做的一些与其他人不同的操作的示例:
\n\n/u<TAB>
完成到/usr/
/usr/
/usr/li<TAB>
完成/usr/lib
并列出lib/
和libexec/
/usr/lib/
/usr/lib/
在 bash 中,无论我点击多少次 tab,它都不会过去/usr/lib
,需要我输入斜杠,而我不想这样做。
在 zsh 中,/usr/li<TAB>
首先完成 to /usr/lib
,然后另一个选项卡列出lib/
和libexec/
,第三次选项卡完成 to /usr/lib/
,所有后续选项卡在/usr/lib/
和 之间循环/usr/libexec/
。我不知道如何度过这一点。我只想从/usr/li
到/usr/lib
,然后/usr/lib/
,然后列出其内容。
对于Python来说也是如此。在 tcsh 中,我输入pyt<TAB>
,它完成python
并列出python
, python2.5
,python2.6
等,然后第二个选项卡用于 python 并添加空格。在 bash 中,它要求我输入空格,而在 zsh 中,它会像第一个示例一样无限循环。
任何驯服这些贝壳的帮助将不胜感激。我不想\xe2\x80\x99t真的想花时间调整这些shell的其他方面,直到解决上面的问题。
\n准确地描述您的要求做得很好,但如果存在歧义,我不确定我是否真正理解您想要做什么,例如/usr/lib
,在您期望Tab密钥做什么之后。
如果我尝试 tcsh,之后/usr/lib
,Tab密钥仅列出lib
和libexec
。您可以在 zsh 中使用 重现此效果setopt no_auto_menu
,但这可能会以您在其他情况下不喜欢的方式改变行为。如果您也这样做setopt rec_exact
,则行为看起来就像您所描述的那样:after /usr/li
、Tabinserts b
、然后另一个Tabinserts/
和第三个列出 中的完成/usr/lib/
。
zsh 补全选项记录在man zshoptions
.
归档时间: |
|
查看次数: |
1830 次 |
最近记录: |