2014-01-07 70 views
3

我是新來的,所以忍受着我,但我想做一個規則,在Firefox選項卡上使用arbtt v0.7在categorize.cfg中分割出我的時間:arbtt嵌套如果然後其他在categorize.cfg

-- Firefox 
current window ($program == "Navigator") ==> 
    if $title =~ /^(.*) - (.*@.*) - .* Mail - Mozilla Firefox$/ then tag Email:$2-$1 else 
    if $title =~ /^(.*) - Calendar - Mozilla Firefox$/   then tag Calendar:$1 else 
    if $title =~ /^(.*) - Mozilla Firefox$/      then tag Firefox:$1 else 
                    tag Firefox, 

,但我得到:

Parser error: "/home/rich/.arbtt/categorize.cfg" (line 29, column 3): unexpected "i" expecting "else"

我也試圖與更多的成功的另一種方法:

current window ($program == "Navigator" && $title =~ /^(.*) - (.*@.*) - .* Mail - Mozilla Firefox$/) 
    ==> tag Email:$2-$1, 
current window ($program == "Navigator" && $title =~ /^(.*) - Calendar - Mozilla Firefox$/) 
    ==> tag Calendar:$1, 
current window ($program == "Navigator" && $title =~ /^((?!.*\b(Calendar|Mail)\b)) - Mozilla Firefox$/) 
    ==> tag Firefox:$1, 

但最後一句d不會返回任何結果;前兩個條款。

乾杯, 豐富

+0

錯誤提交在https://bitbucket.org/nomeata/arbtt/issue/4/parsing-of-if-then-else-fails和https://bitbucket.org/nomeata/arbtt/issue/5/解析失敗 –

+0

嗯,現在有兩個問題,不是嗎?我不確定是否所有這些正則表達式都被底層庫支持([pcre-light](http://hackage.haskell.org/package/pcre-light))。 –

+0

啊,不應該是'/^(?!.*\b(Calendar|Mail)\b)(.*) - Mozilla Firefox $ /' - '(?!...)寬度模式...但我很慚愧,使用';'的變體不起作用。也許這需要轉移到arbtt郵件列表或bug跟蹤器。 –

回答

1

它看起來像在arbtt的錯誤;我同意你的代碼看起來正確。

但不管怎麼說,它可能是更地道使用;運營商,這意味着「嘗試的第一件事情,如果它不分配一個標籤,嘗試第二件事」:

current window ($program == "Navigator") ==> 
    { $title =~ /^(.*) - (.*@.*) - .* Mail - Mozilla Firefox$/ ==> tag Email:$2-$1;; 
    $title =~ /^(.*) - Calendar - Mozilla Firefox$/   ==> tag Calendar:$1; 
    $title =~ /^(.*) - Mozilla Firefox$/      ==> tag Firefox:$1; 
    tag Firefox }, 

(該;;是因爲在解析器另一個bug的 - 猜那一部分還沒有被使用了很多至今)

在你的第二次嘗試,根本就與正則表達式的一個問題:它應該是/^(?!.*\b(Calendar|Mail)\b)(.*) - Mozilla Firefox$/ - (?!...)是零。寬度模式。

+0

感謝您的回答。雖然解析器接受它,但我沒有得到任何匹配的條目。我用另一種幾乎可行的方法編輯上面的內容。 – racitup