bil*_*oah 2 apache-http-server vim filetype
我网站的 Apache 配置文件名为mywebsite.com. 显然,扩展名.com导致 vim 设置了错误的文件类型,dcl这也会导致语法高亮显示错误。我的所有其他主机配置文件都被正确识别为 Apache 文件。
我能够:set filetype=apache并且一切看起来都很棒但是在关闭 vim 并回来编辑文件类型dcl后又恢复了。
除了重命名我的主机配置文件之外,还有其他解决方案吗?有没有办法让 vim 记住这个特定文件的文件类型?或者更好的是,有没有办法纠正这种错误的文件类型检测?
use*_*686 10
一种方法是增加一个模式行到文件的开头或结尾。一个基本的Vim 模式行如下所示:
# vim: ft=apache
Run Code Online (Sandbox Code Playgroud)
Vim 会忽略注释字符本身。还有一种替代语法也允许跟随注释字符:
/* vim: set ft=apache: */
Run Code Online (Sandbox Code Playgroud)
Emacs 和其他一些编辑器使用它-*- mode: apache -*-。
如果您想通过扩展名覆盖文件类型检测,您可以将以下内容添加到您的~/.vim/filetype.vim:
augroup filetypedetect
au BufNewFile,BufRead *.com setl ft=apache
augroup END
Run Code Online (Sandbox Code Playgroud)
(我不知道是否setf apache或setl ft=apache更好。)
请注意,检测并非完全错误,只是不准确。OpenVMS 操作系统.com用作“命令”文件的扩展名——很像 shell 脚本或批处理文件——它们是用 OpenVMS shell 语言 DCL(数字命令语言)编写的。
Vim 的内置参考手册中描述了如何做到这一点
:help new-filetype
Run Code Online (Sandbox Code Playgroud)
如 C.2 节中所述,创建一个包含~/.vim/filetype.vim以下内容的文件:
if exists("did_load_filetypes")
finish
endif
augroup filetypedetect
au! BufRead,BufNewFile *.com setfiletype apache
augroup END
Run Code Online (Sandbox Code Playgroud)
这将识别任何以文件类型 apache 结尾的文件.com。如果您只想mywebsite.com被识别,请将该au行更改为
au! BufRead,BufNewFile mywebsite.com setfiletype apache
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1755 次 |
| 最近记录: |