Vimscript:如何将当前文件类型作为变量

awe*_*wef 17 vim

我想将当前文件类型作为vimscript中的变量.

我正在创建一个抓取当前文件类型的函数,并编辑相应文件类型的另一个文件.

例如:

  • 编辑"foo/bar.txt",想打开"tmp/other.txt"
  • 编辑"foo/bar.cpp",想打开"tmp/other.cpp"

我知道:set ft?在vim 中显示文件类型,但我不知道如何捕获它然后使用它作为新文件字符串的一部分打开另一个文件.

Pri*_*ash 28

您可以通过在前面加上&符来访问设置的值.要将文件类型分配给变量,以下内容是等效的:

let my_filetype = &filetype
let my_filetype = &ft
Run Code Online (Sandbox Code Playgroud)

因此,对于您的示例,假设已设置当前缓冲区的文件类型,您可以执行类似的操作

execute 'edit tmp/other.' . &filetype
Run Code Online (Sandbox Code Playgroud)

请注意,您需要execute使用表达式,以便在连接字符串之前展开变量.