如果我在/etc/apache2/sites-available/www.example.com
中有一个apache文件,我将其文件类型设置为
:set filetype=apache
那是做什么的?这会改变文件吗?它只反映在vim的实例中吗? vim会议?我可以手动设置文件类型,但随后vim警告我我处于只读模式(/etc/apache2
需要root访问权限)。如果我以root身份打开vim,我将不会收到警告,但如果我离开并再次打开它(正常或root),文件类型就会消失。如何使其更加永久,至少从同一会话文件中调用
答案 0 :(得分:3)
set filetype
通过调用所有FileType
自动命令来改变vim处理文件的方式。它不会持久。如果您希望始终使用filetype=apache
打开该文件,请尝试将其添加到.vimrc
:
au BufRead,BufNewFile /etc/apache2/sites-available/www.example.com set filetype=apache
您可以在以下网址阅读更多相关信息:
:help 'filetype'
:help filetypes
:help :autocmd
:help .vimrc
在我的/usr/share/vim/vim73/filetype.vim
中找到编辑:
au BufNewFile,BufRead access.conf*,apache.conf*,apache2.conf*,httpd.conf*,srm.conf* call s:StarSetf('apache')
au BufNewFile,BufRead */etc/apache2/*.conf*,*/etc/apache2/conf.*/*,*/etc/apache2/mods-*/*,*/etc/apache2/sites-*/*,*/etc/httpd/conf.d/*.conf* call s:StarSetf('apache')
如果文件类型与忽略的模式不匹配,则 s:StarSetf
会setfiletype
到apache
。在我的系统上,:echo g:ft_ignore_pat
将仅显示已忽略的存档文件扩展名。 setfiletype
执行set filetype
,但只执行一次。
因此,至少在我的系统上,模式*/etc/apache2/sites-*/*
会捕获您的文件名并将其设为apache
文件。
答案 1 :(得分:0)
文件类型基本上允许Vim更改“文件类型”的设置。它的方式是通过在更改文件类型时为FileType类别触发auto命令。如果FileType的自动命令适用于您的文件,这可能会更改您的文件(但通常插件开发人员将其用于影响突出显示的r / o类型更改,而不是文件的内容)。
如果您担心设置文件类型与文件混乱,您可以通过发出以下命令来查看存在的FileType自动命令:
:au FileType
要将apache文件设置为apache文件类型,可以将以下内容放入〜/ .vimrc中:
:au BufRead /etc/apache2/sites-available/* set ft=apache