如何让 vim 打开并突出显示 systemd 单元文件的语法?

如何让 vim 打开并突出显示 systemd 单元文件的语法?

我使用 systemdnvim作为我的主编辑器,并使用 systemd 运行服务。当我直接编辑单元文件时,有一个内置的 systemd 文件类型,这很棒。

但是,当我编辑服务文件时

systemctl edit my-service.service

systemd 将文件复制到一个名为类似名称的临时文件.#my-service.servicee18f4d3ef193cd58并将其作为缓冲区打开,并且由于文件名而未检测到文件类型,因此我必须set ft=systemd在 nvim 中手动设置它。

我阅读了有关SYSTEMD_EDITOR环境变量的信息,并尝试在我的 zshrc 中设置它,如下所示:

export SYSTEMD_EDITOR='nvim -c "set ft=systemd"'

但这会导致 nvim 启动时有两个名为的缓冲区ft=systemd".#my-service.servicee18f4d3ef193cd58当我发出systemctl edit --full my-service.service

如何正确设置该环境变量?或者,我如何扩展 vim 的 ft 检测以包含此命名模式的文件?

答案1

我意识到我确实知道如何根据 vimrc 中的扩展名设置文件类型:

autocmd BufNewFile,BufRead *.service* set ft=systemd

我仍然对问题中的引用错误感兴趣。

相关内容