2013-02-05 66 views
13

我想獲取當前文件類型作爲vimscript中的變量。Vimscript:如何獲取當前文件類型作爲變量

我正在製作一個抓取當前文件類型並編輯相應文件類型的另一個文件的函數。

例如:

  • 編輯 「富/跳回到bar.txt」,要打開 「TMP/other.txt」
  • 編輯 「富/ bar.cpp」,要打開「TMP/other.cpp」

等我知道:set ft?顯示文件類型在vim,但我不知道如何捕捉到它,然後打開將其作爲新的文件字符串的一部分的另一個文件。

+5

'&filetype'不一定對應於文件擴展名!你真的想爲此使用文件類型,還是寧願分析'bufname(「%」)''如'fnamemodify(bufname(「%」),「:t」)'來提取當前文件的擴展名?例如,名爲'foo.hpp'的文件具有cpp的'&filetype'。你想在這種情況下打開「tmp/other.cpp」或「tmp/other.hpp」嗎? – cptstubing06

回答

24

您可以通過在&符號前加前綴來訪問設置的值。要將文件類型分配給一個變量,下面是等價的:

let my_filetype = &filetype 
let my_filetype = &ft 

因此,對於你的例子,假設當前緩衝區的文件類型已定,你可以不喜歡

execute 'edit tmp/other.' . &filetype 

注意您需要execute表達式,以便在將字符串連接在一起之前展開該變量。

0

文件類型和文件後綴不一定是相同的東西。例如,如果您正在編輯.txt文件,則讓zft = &英尺將zft設置爲「文本」。讓zfs = fnamemodify(bufname(「%」),「:e」)將zfs設置爲「txt」。

相關問題