在Bash

时间:2017-03-08 15:27:15

标签: bash unix input key-bindings cd

最近我一直在使用inputrc,我认为将Ctrl-Up箭头(我的机器上的^[[1;5A)绑定到命令cd ..

会很不错

所以我修改了inputrc以包含"\e[1;5A": "cd ..\n"

现在我想要Ctrl-Down箭头来执行以下操作:

  • 如果当前目录中只有一个目录:cd进入它。 我可以通过以下方式检查是否只有一个目录:

    if [ $(ls -a --ignore . --ignore .. | wc -l) -eq 1 ]
    
  • 如果有多个目录:执行“TAB TAB”

  • 如果只有一行目录,请转到层次结构的底部

例如在文件结构中

a

|-------b--------d

|

|-------c--------e--------f----------i--------j-------k

                |-----g

                |-----h

假设aj是目录而ab/c的父,c is the parent of e`等...

假设我从a开始,

  • 按住ctrl-down将双击TAB并显示bc

  • 输入cd a/c并再次按下ctr-down将使我的命令cd a/c/e(就像标签的完整方式一样)

  • 再次按下ctrl-down将显示fgh

  • 输入f所以我的命令现在是cd a/c/e/f并按下ctrl-down 现在将发出我的命令cd a/c/e/f/i/j/k

我知道我必须制作一个脚本并将脚本绑定到ctrl-down箭头。我的问题是如何将一些内容附加到我正在键入的当前命令中,并根据我输入的内容检查下一个目录而不需要执行该命令?

0 个答案:

没有答案