Автозаполнение tcsh для файлов модулей
Я нашел этот фрагмент кода, который выполняет автозаполнение для файлов модулей в tcsh по адресу https://opensource.apple.com/source/tcsh/tcsh-66/tcsh/complete.tcsh.
Может ли кто-нибудь помочь мне понять, как работает псевдоним Compl_module?
#from Dan Nicolaescu <dann@ics.uci.edu>
if ( $?MODULESHOME ) then
alias Compl_module 'find ${MODULEPATH:as/:/ /} -name .version -o -name .modulea\* -prune -o -print | sed `echo "-e s@${MODULEPATH:as%:%/\*@@g -e s@%}/\*@@g"`'
complete module 'p%1%(add load unload switch display avail use unuse update purge list clear help initadd initrm initswitch initlist initclear)%' \
'n%{unl*,sw*,inits*}%`echo "$LOADEDMODULES:as/:/ /"`%' \
'n%{lo*,di*,he*,inita*,initr*}%`eval Compl_module`%' \
'N%{sw*,initsw*}%`eval Compl_module`%' 'C%-%(-append)%' 'n%{use,unu*,av*}%d%' 'n%-append%d%' \
'C%[^-]*%`eval Compl_module`%'
endif
Большое спасибо.
1 ответ
Не уверен в этом Compl_module
Псевдоним работает хорошо, так как он пытается определить все существующие файлы модулей в модульных путях, просто просматривая существующие файлы. Файлы модулей также могут быть псевдонимами, символическими версиями и виртуальными (в более новых версиях модулей>=4.1), поэтому Compl_module
псевдоним будет пропустить это.
Вы найдете полный скрипт завершения module
Команда в исходном хранилище проекта Модули.
Этот сценарий завершения вызывает module avail
правильно получить все существующие файлы модулей во включенных путях модуля.
Сценарий завершения TCSH автоматически включается, начиная с версии 4.0 модулей.