2011-03-22 52 views
0

有誰知道爲什麼從來不工作:這個(vimscript)代碼有什麼問題?

if !exists("g:removenumbchar") 
    if a:type == "remove" 
    let g:removenumbchar = "How many characters do you want remove at the end?" 
    elseif a:type == "add" 
    let g:removenumbchar = "How many characters do you want add at the end?" 
    endif 
endif 
let c = inputdialog(g:removenumbchar) 

即使「一:類型」值是正確的,有時它有時顯示的第一句話第二個。 我從來沒有明白這是怎麼來的。

回答

2

那麼,g:removenumbchar將持續呼叫我假設這個函數的所有函數,所以在您調用函數之後,每次都會收到相同的消息,而不管後續調用中是否有a:type。這可能是你所看到的嗎?

+0

是的,可以是正確的。你知道如何避免持久性? – Reman 2011-03-22 11:19:40

+1

你爲什麼要使用全局? – 2011-03-22 12:01:17

+0

好問題。始終使用全局變量。我何時必須使用全局變量,何時不使用全局變量? – Reman 2011-03-22 13:28:30