Как сделать завершение табуляции добавить косую черту для символьных ссылок каталога?

Мой ~/Documents каталог является символической ссылкой:

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

Если я захочу cd в каталог я могу набрать:

c d space D o c tab

... и завершится вкладка uments до конца cd Doc как и ожидалось. Тем не менее, он не добавляет завершающий /даже если символическая ссылка указывает на каталог.

Есть ли способ заставить Баш сделать это?

1 ответ

Решение

Включить mark-symlinked-directories вариант для READLINE. Есть несколько способов сделать это:

  1. Настройте вашу readline, поместив команды в .inputrc файл:

    • Создать или редактировать ~/.inputrc и добавьте эти строки:

      $include /etc/inputrc
      set mark-symlinked-directories on
      
    • Войдите / Выйдите из системы или нажмите ctrl+x и ctrl+r, чтобы перезагрузить настройки.

  2. Настройте вашу readline, поместив команды в .bashrc файл (или в .profile файл):

    • редактировать ~/.bashrc и добавьте эту строку:

      bind 'set mark-symlinked-directories on'
      
    • Войти / Выйти или исходный файл:

      source ~/.bashrc
      
  3. Настройте readline для всех пользователей, создав .sh файл в каталог /etc/profile.d:

    • Создать файл /etc/profile.d/mark-symlinked-directories.sh который должен выглядеть так:

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

      Права доступа к этому файлу не требуются.

    • Регистрация / Вход-аут. Вот и все.

Дальнейшее чтение:


Один простой способ, который я нашел, это двойная вкладка для завершения:

c d space D o c tab tab

Первая вкладка будет добавлена umentsвторой добавит / а третий напечатает список содержащихся каталогов.

Другие вопросы по тегам