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

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

假设某个目录中有 3 个文件:abc.txt, aww.txt, ant.txt

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

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

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

答案1

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

bind '"\e[6~": menu-complete'
bind '"\e[5~": menu-complete-backward'

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

$include /etc/inputrc
"\e[6~": menu-complete
"\e[5~": menu-complete-backward

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

  • TAB正常查看可用的完成情况。
  • Pg Dn选择第一个完成或更改为下一个。
  • Pg Up选择最后完成的操作或更改为上一个。
  • Alt+nPg Dn选择第 n 个完成或向前移动 n 个完成。

因此对于您的示例类型Pg DnPg DnAlt+2Pg Dn来获取第二个文件aww.txt

相关内容