2009-06-03 33 views
4

我很困惑這些在VIM中。有些東西需要設置,其他的需要。 而且,我如何檢查某個選項。我知道這是一個選項,因爲我使用set來改變它。VIM:選項,變量和轉換之間的兩個

例如,如何檢查當前filetype選項是否爲java?

回答

6

:設置用於顯示的選項值,顯式地設置選項值和切換它們,而:讓用於設置選項值作爲先前某個表達式的結果(當您通過變量來定義選項值時)。當然,在vim腳本中,你會使用:讓更多。

例如:
你通常設置文件類型與

:set ft=batch 

但你也可以

:let varijabla='batch' 
:let &filetype=varijabla 
+0

請問,Vim下的** variable **和** option **有什麼區別? – nn0p 2016-04-22 16:28:04

9

剛剛通過研究更多: 要獲得選項的值,請在選項前加上&

所以,上述是可以做到

if &filetype == 'java' 
11

選項

所有這些選項改變這種或那種方式Vim的行爲。 其中許多是用來定製你的Vim:你可以設置如何處理備份文件,如何管理文本,是否顯示菜單和工具欄,以及一堆其他的東西。 緩衝區或窗口有幾個選項是本地的;它們例如指定應該在緩衝區上使用哪種語法高亮和縮進。 :set命令可用於設置和打印選項的值,請參閱:help :set。 如果您輸入:h option-list,您將得到所有帶有單行說明的選項列表。 如果您輸入:h option-summary,您會得到所有選項及其詳細描述的列表。

內部變量

內部變量是不同的東西:他們就像在程序中的變量。 您可以隨時創建或銷燬變量。 只有通過Vim腳本(例如Vim插件和.vimrc文件)才能讀取(並修改)它們的值並根據它們做不同的事情,它們本身不會影響Vim的行爲。 有幾種內部變量:全局變量,局部變量和其他一些變量。 它們在:h internal-variables中描述。 (:h expression)和 它們可以使用let:h :let)和unlet:h :unlet)命令進行設置和刪除。

變量中的引申義

有行爲像變量,但不是內部變量的其他對象。 它們也用表達式評估,它們的值可以使用let命令設置;但他們不能被刪除。 內部有三種類型的變量:環境變量(:h :let-environment),寄存器變量(:h let-register)和選項變量(:h let-option)。 所有這些都有一個前綴,以便它們可以與內部變量和對方區分開來。 環境變量的前綴爲$,寄存器變量爲@,選項變量爲&。 這些變量指向某處(對於真​​實的環境變量,寄存器或選項),並且當它們的值被讀取或設置在腳本中或由用戶設置時,實際上讀取或設置「真實事物」的值。

+0

`options`只是*預定義*`變量`? – nn0p 2016-04-22 16:30:05