从完成建议中选择特定结果

sam*_*ara 11 bash auto-completion

假设我在特定目录中有 3 个文件: abc.txt, aww.txt, ant.txt

如果我这样做:(cat a并按 Tab 键查看选项)终端将显示 3 个文件名:abc.txt, aww.txt, ant.txt

有没有办法通过在终端显示的结果中指定索引号来选择第 n 个结果而不是输入?

类似于:cat a2获取第二个文件 ( aww.txt)?

Mar*_*ton 12

假设您正在使用 bash,请将以下内容添加到您的~/.bashrc

bind '"\e[6~": menu-complete'
bind '"\e[5~": menu-complete-backward'
Run Code Online (Sandbox Code Playgroud)

或者要更改使用 readline 完成库的所有程序的默认值,而不仅仅是 bash,请创建~/.inputrc包含以下内容的文件:

$include /etc/inputrc
"\e[6~": menu-complete
"\e[5~": menu-complete-backward
Run Code Online (Sandbox Code Playgroud)

现在,当您打开一个新终端时,您可以按:

  • TAB 像往常一样看到可用的完成。
  • Pg Dn 选择第一个完成或更改为下一个。
  • Pg Up 选择最后一个完成或更改为上一个。
  • Alt+nPg Dn选择第 n 个完成或向前移动 n 个完成。

因此,对于您的示例,请键入Pg DnPg DnAlt+2Pg Dn以获取第二个文件aww.txt