簡體   English   中英

tcsh自動補全模塊文件

[英]tcsh autocompletion for modulefiles

我在https://opensource.apple.com/source/tcsh/tcsh-66/tcsh/complete.tcsh上找到了這段代碼,該代碼可以自動完成tcsh中的模塊文件。

有人可以幫助我理解'alias 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

非常感謝。

不確定此Compl_module別名是否運行良好,因為它試圖通過僅查看現有文件來確定模塊路徑中的所有現有模塊文件。 Modulefile也可以是別名,符號版本和虛擬文件(在更新的Modules版本> = 4.1中),因此Compl_module別名會忽略該別名。

您將在Modules項目的源存儲庫中找到module命令的完整完成腳本。

此完成腳本調用module avail以正確獲取已啟用的模塊路徑中的所有現有module avail文件。

從模塊版本4.0開始,將自動啟用TCSH完成腳本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM