2014-07-19 46 views
0

假設我有一個文件樹剿修正通過爭論中的zsh

-A_dir/ 
    - a_test_file1 

mv a_test_file1 a_test_file2導致惱人的修正查詢。 mv的第二個參數不應該被糾正,因爲它可能指向或不指向文件系統上的現有節點。但是,第一個參數可能會被更正,因爲它必須始終是有效的節點。

這是一個常見的用例,我只喜歡zsh來糾正某些命令中的某些參數。我怎樣才能做到這一點?

+0

'但是,第一個參數可能會被糾正,因爲它必須始終是一個有效的節點。「 - >你想如何糾正?通過搜索子目錄?如何當多個目錄包含相同的文件? – konsolebox

+0

只要* no *更正應用於'mv'的第二個參數,我認爲OP很滿意應用於第一個參數的默認校正。 – chepner

+0

@konsolebox,chepner是正確的。 – PythonNut

回答

0

把它作爲答案,因爲它太多文字的評論...但這是一個真正的評論。

老實說,粗略閱讀手冊表明,這是不可能的,沒有深度hackery。 correct更正了命令,correct_all嘗試更正所有參數。

我想過做這樣的事情

function mv { 
    emulate -L zsh 
    CORRECT_IGNORE='*'[email protected][-1]'*' 
    command mv [email protected] 
} 

但它不爲CORRECT_IGNORE工作並不適用於文件名的修正。如果您可以找出如何從參數列表中產生更正,您可以爲所有需要更正的參數生成更正,然後再調用nocorrect mv ...