2010-10-10 84 views
0

創建便攜式.vimrc時遇到的一個問題是使用語言環境。比方說,我總是希望使用英語作爲消息。根據OS和Vim的版本,需要的命令可能lang messages enlang messages en_USlang messages English_US,等等。現在,我可以這樣做:在Vimscript中測試語言環境

try 
    lang messages en 
catch 
    try 
    lang messages en_US 
    catch 
    try 
     lang messages English_US 
    catch 
     ... 
    endtry 
    endtry 
endtry 

但有一個更簡單的方法?

回答

3

根據vim的幫助下,你可以使用let $LANG="en",所以至少以下工作(注意:--cmd被vimrc文件之前執行):

vim --cmd 'let $LANG="en"' 

,但是這將產生以下錯誤:

perl: warning: Setting locale failed. 
perl: warning: Please check that your locale settings: 
     LANGUAGE = "", 
     LC_ALL = (unset), 
     LANG = "en" 
    are supported and installed on your system. 
perl: warning: Falling back to the standard locale ("C"). 

,所以這隻適用於英語(因爲C語言環境是英語)。

您還可以使用執行:

for s:lang in ["en", "en_US", "en_US.UTF-8", "English_US"] 
    try 
     execute 'language messages '.s:lang 
     break 
    catch /^Vim(language):E197:/ 
     " Do nothing 
    endtry 
endfor 
unlet s:lang 
+1

我喜歡這種巧妙的利用break'的'! – Benoit 2010-10-10 18:25:43