2013-02-05 32 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”。

相关问题