22

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

我正在制作一个获取当前文件类型并编辑相应文件类型的另一个文件的函数。

例如:

  • 编辑“foo/bar.txt”,想打开“tmp/other.txt”
  • 编辑“foo/bar.cpp”,想要打开“tmp/other.cpp”

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

4

2 回答 2

35

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

let my_filetype = &filetype
let my_filetype = &ft

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

execute 'edit tmp/other.' . &filetype

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

于 2013-02-05T22:08:21.407 回答
0

文件类型和文件后缀不一定是一回事。例如,如果您正在编辑 .txt 文件,让 zft = &ft 将 zft 设置为“文本”。let zfs = fnamemodify(bufname("%"), ":e") 将 zfs 设置为 "txt"。

于 2014-11-30T22:48:01.773 回答