Я часто использую Tabключ, когда использую оболочку (bash).
Но меня раздражает то, что ~
всегда расширяется до /home/"user"
. Я не думаю, что это всегда было так; Есть ли способ остановить это поведение?
Пример:
cj@zap:~$ ls ~/
- Нажмите Tab
cj@zap:~$ ls /home/cj/
Я хотел бы продолжать иметь ~/
и не в конечном итоге /home/cj/
.
bash
autocomplete
Johan
источник
источник
set expand-tilde off
(по умолчанию или установлена в~/.inputrc
).shopt -p direxpand
.Ответы:
Отключение расширения тильды происходит быстро и безболезненно. Откройте
~/.bashrc
и вставьте это:Это переопределит функцию расширения из
/etc/bash_completion
. Я бы порекомендовал прокомментировать, что он делает над функцией, на случай, если вы захотите расширить его в будущем. Изменения вступят в силу в новом экземпляре.источник
_expand(){ true; }
короче :)_expand(){ false; }
? @tigtrue
возвращает успешный результат, и успешный результат равен 0, поэтомуreturn 0
равенtrue
в состоянии выхода иreturn 1
равенfalse
. просто попробоватьtrue; echo $?
иfalse; echo $?
.С более новым bash_completion кажется, что вам также нужно переопределить __expand_tilde_by_ref:
источник
Еще более компактно:
... as ":" - это встроенная оболочка, эквивалентная "true" :-)
источник
Более точная настройка будет
источник