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

时间:2013-02-05 21:47:20

标签: vim

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

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

例如:

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

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

2 个答案:

答案 0 :(得分:28)

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

let my_filetype = &filetype
let my_filetype = &ft

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

的操作
execute 'edit tmp/other.' . &filetype

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

答案 1 :(得分:0)

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