почему завершение не работает на все псевдонимы?

find . -name "__openerp__.py" -exec sh -c '(cd "{}"/../../; pwd)' \; | uniq
2
28.10.2014, 19:11
2 ответа

В случае путаницы, expansion_aliases определяет, проверяются ли псевдонимы при обработке команд, совсем другое дело completion.

Звучит так, как будто у вас задано завершение каждой команды, проверьте вывод complete (аргументов нет). gv обычно является командой ghostview, поэтому возможно, что gv завершение - это только поиск PS/EPS/PDF файлов.

3
27.01.2020, 22:05

Во-первых, автодополнение Bash -просто читает то, что вы вводите в командной строке, не разрешая псевдонимы. Если вы поместите имя команды, то он читает имя команды. Если вы ставите псевдоним, то он читает псевдоним. Итак, что касается завершения, gvне имеет ничего общего с gvimв вашем случае. На самом деле, gv— это имя, определенное в сценарии bash -завершения как:

_install_xspec '!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ|.bz2|.BZ2|.Z))' gv ggv kghostview
complete -F _filedir_xspec gv

Таким образом, в основном он соответствует только несжатым и сжатым файлам ps и pdf.

Насколько я знаю, у вас есть 2 способа справиться с этим:

  1. Установите альтернативное завершение для gvна другую функцию. Например, _longoptработает в вашем случае:

    complete -F _longopt gv
    
  2. Напишите общую функцию завершения псевдонима и используйте ее в gv. К счастью, кто-то сделал это за вас:https://github.com/cykerway/complete-alias

0
27.01.2020, 22:05

Теги

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