12

Я часто использую клавишу Tab, когда использую оболочку (bash).

Но меня раздражает, что ~ всегда расширяется до /home/"user" . Я не думаю, что это всегда было так; Есть ли способ остановить это поведение?

Пример:

  1. cj@zap:~$ ls ~/
  2. Нажмите Tab
  3. cj@zap:~$ ls /home/cj/

Я хотел бы продолжать иметь ~/ и не заканчивать с /home/cj/ .

4 ответа4

10

Отключение расширения тильды происходит быстро и безболезненно. Откройте ~/.bashrc и вставьте это:

_expand()
{
    return 0;
}

Это переопределит функцию расширения из /etc/bash_completion . Я бы порекомендовал прокомментировать, что он делает над функцией, на случай, если вы захотите расширить его в будущем. Изменения вступят в силу в новом экземпляре.

5

С более новым bash_completion кажется, что вам также нужно переопределить __expand_tilde_by_ref:

__expand_tilde_by_ref() {
  return 0
}
1

Еще более компактно:

_expand() { :; }

... as ":" - это встроенная оболочка, эквивалентная "true" :-)

0

Более точная настройка будет

_filedir_xspec () { :; }

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .