如何利用笨拙的pushd和popd与Bash的awsome dirs内置命令

Tim*_*ske 10 bash stack directory-structure built-in

处理目录堆栈的方式是否比使用pushd和更可行popd

我找到的的的CLI pushd,并popd呈现给用户一种令人难以置信的内置命令.但与此同时,我希望经常使用dirs内置命令提供的目录堆栈.

所以我花了很长时间才弄清楚用例然后记住以下内容:

  1. pushd - 从顶部切换两个目录.
  2. pushd +1 - 从顶级目录切换到第二个.
  3. pushd -0 - 从顶层目录切换到底部.
  4. popd +0 - 从顶部目录弹出顶部更改为第二个.
  5. pushd -0; popd +1 - 从顶层目录切换到底部并弹出前顶部.

每次只是为了与目录堆栈玩杂耍,仍然需要输入它们,这对我很重要.我甚至不能用助记名来为这五个用例添加别名.

任何见解?

Tim*_*ske 6

最近,我发现了GNU readline库的强大功能以及它可以在Bash命令行上为用户提供的关键笔划的快捷方式.

因此,我在我的~/.inputrc文件中定义了以下热键.GNU readline的配置文件:

# "pushd" use case.
"\C-^": "\C-a\C-kpushd\C-m"

# "pushd +1" use case.
"\e<": "\C-a\C-kpushd +1\C-m"

# "popd +0" use case.
"\ex\e<": "\C-a\C-kpopd +0\C-m"

# "pushd -0" use case.
"\e>": "\C-a\C-kpushd -0\C-m"

# "pushd -0; popd +1" use case.
"\ex\e>": "\C-a\C-kpushd -0; popd +1\C-m"
Run Code Online (Sandbox Code Playgroud)

我将上面的热键关联如下:

  1. <ctrl>-^- vim使用前一个缓冲区切换当前的热键.
  2. <alt>-< - 左转并携带.
  3. <alt>-x< - 向左移动并裁剪.
  4. <alt>-> - 向右移动并携带.
  5. <alt>-x> - 向右移动和裁剪.

<ctrl>-ak关键笔划在线(a)的开头位置的光标,并删除(K)它.这很重要,因为当<ctrl-m>(输入)被击中时,用户可能会在句子中间点击热键.使用当前用户输入时,热键值将变为乱码,并且bash无法执行它.