Как сделать завершение табуляции добавить косую черту для символьных ссылок каталога?
Мой ~/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. Есть несколько способов сделать это:
Настройте вашу readline, поместив команды в
.inputrcфайл:Создать или редактировать
~/.inputrcи добавьте эти строки:$include /etc/inputrc set mark-symlinked-directories onВойдите / Выйдите из системы или нажмите ctrl+x и ctrl+r, чтобы перезагрузить настройки.
Настройте вашу readline, поместив команды в
.bashrcфайл (или в.profileфайл):редактировать
~/.bashrcи добавьте эту строку:bind 'set mark-symlinked-directories on'Войти / Выйти или исходный файл:
source ~/.bashrc
Настройте readline для всех пользователей, создав
.shфайл в каталог/etc/profile.d:Создать файл
/etc/profile.d/mark-symlinked-directories.shкоторый должен выглядеть так:#!/bin/sh bind 'set mark-symlinked-directories on'Права доступа к этому файлу не требуются.
Регистрация / Вход-аут. Вот и все.
Дальнейшее чтение:
- Раздел READLINE на странице руководства Bash
- Источник первых двух способов
- Источник идеи для третьего пути
Один простой способ, который я нашел, это двойная вкладка для завершения:
c d space D o c tab tab
Первая вкладка будет добавлена umentsвторой добавит / а третий напечатает список содержащихся каталогов.