Ubuntu终端,如何“标记”(自动完成)文件名窗口cmd样式(循环选项)?


13

基本上我想在功能上更改ubuntu终端,以便我可以在Tab(在cmd行中)上浏览所有选项,而不是按默认设置列出选项?

我正在使用bash,ubuntu 9.04。我在“ .bashrc”中看到了一些可能性,但肯定有人已经解决了这个问题?


您确实知道,如果按两次Tab键可以获得所有可能完成的列表,不是吗?
vava

@vava:您正在描述bash的可能完成命令,这通常是默认行为。问题是如何用bash的menu-complete命令提供的行为替换此行为。
las3rjock

@ las3rjock,我知道,这就是为什么我留下评论而不是答案的原因。OP可能不知道该功能,因为它比循环模式更好。
vava

@vava:OP描述了可能的完成行为,并指出他希望将其替换为菜单完成行为。
las3rjock

@vava我确实知道终端的工作原理,并且我想更改这种烦人的行为。
Daniel T. Magnusson

Answers:


16

根据此页面上的评论,

bind '"\t":menu-complete'

在您.bashrc应该启用循环制表符完成。

有关更多信息,请参见《Bash参考手册》的8.4.6节


谢谢,很好找到!-只需喜欢该页面上的评论“我花了多年时间才发现bash支持循环制表符完成”-哈哈,超级用户胜出!
Daniel T. Magnusson

谢谢!一旦实现了此功能,是否有覆盖键组合可以立即使用旧方法?例如,Shift + TAB键。
2012年

0

对我而言,可以挽救生命的事情是让各种可能性不断循环,而不是显示出愚蠢的清单。

当bash readline用于自动补全时,将以下行添加到~/.inputrc

满足您的要求并在以下解决方案上进行了几天/几周的彻底测试后,请剪切并粘贴(请勿复制!)包含系统范围设置的相同设置,~/.inputrc/etc/inputrc供系统上的所有用户使用(包括客人)。

编码:

# mappings to have up and down arrow searching through history:
"\e[A": history-search-backward
"\e[B": history-search-forward
# mappings to have left and right arrow go left and right: 
"\e[C": forward-char
"\e[D": backward-char

# mapping to have [Tab] and [Shift]+[Tab] to cycle through all the possible completions:
"\t": menu-complete
"\e[Z": menu-complete-backward

然后exit将您的终端机(或腻子之类的远程终端机)重新打开...

例子:

  1. 当您有3个文件时:file1file2然后file3键入:

    e fTabTabTab

    它会循环通过:

    e file1
    e file2
    e file3

    而当您想返回时,只需按Shift+Tab

  2. 当您输入时:

    very-complicated-command with lots of command line parameters

    下次您需要相同的命令时,只需键入:

    very

    并为您输入:

    very-complicated-command with lots of command line parameters

这将为您节省大量的bash时间!;-)

资源

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.