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

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

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

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

c d пробел D o c tab

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

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

4
задан 6 April 2017 в 21:53

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 для всех пользователей путем создания a .sh файл в каталог /etc/profile.d:

    • Создайте файл /etc/profile.d/mark-symlinked-directories.sh который должен быть похожим:

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

      Исполняемые полномочия в этот файл не нужны.

    • Войти в систему/Выйти из системы.Именно.

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


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

c d располагают D с интервалами o c вкладка вкладки

Первая вкладка добавит uments, второй добавит / и третье распечатает список содержавших каталогов.

7
ответ дан 1 December 2019 в 09:13

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

Похожие вопросы: