如何使制表符补全为目录符号链接附加斜杠?

如何使制表符补全为目录符号链接附加斜杠?

我的~/Documents目录是一个符号链接:

nathan@nathan-desktop:~$ stat Documents
  File: Documents -> /mnt/nathan/extended/Documents

如果我想cd进入目录,我可以输入:

c d space D o c tab

...并且 tab 补全将按预期附加uments到末尾cd Doc。然而,它不是/即使符号链接指向目录,也要附加一个尾随的。

有没有办法让 Bash 做到这一点?

答案1

启用以下mark-symlinked-directories选项阅读线。有几种方法可以做到这一点:

  1. 定制您的阅读行通过将命令放入.inputrc文件中:

    • 创建或编辑~/.inputrc并添加以下行:

      $include /etc/inputrc
      set mark-symlinked-directories on
      
    • 登录/注销或按ctrl+xctrl+r重新加载设置。

  2. 定制您的阅读行通过将命令放入.bashrc文件中(或.profile文件中):

    • 编辑~/.bashrc并添加此行:

      bind 'set mark-symlinked-directories on'
      
    • 登录/注销或来源文件:

      source ~/.bashrc
      
  3. 自定义阅读行.sh通过在目录中创建文件为所有用户/etc/profile.d

    • 创建一个如下所示的文件:/etc/profile.d/mark-symlinked-directories.sh

      #!/bin/sh
      bind 'set mark-symlinked-directories on'
      

      不需要此文件的可执行权限。

    • 登录/注销。就是这样。

进一步阅读:


我发现一个简单的方法是用 doubletab来完成:

c d space D o c tab tab

第一个tab将附加uments,第二个将附加/,第三个将打印包含的目录列表。

相关内容