微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在vim中更改文件类型时会发生什么?

如果我在/etc/apache2/sites-available/www.example.com上有一个apache文件,我设置它的文件类型就像这样

:set filetype=apache

那是做什么的?这会改变文件吗?它只反映在vim的实例中吗? vim会议?我可以手动设置文件类型,但随后vim警告我我处于只读模式(/ etc / apache2需要root访问权限).如果我以root身份打开vim,我将不会收到警告,但如果我离开并再次打开它(正常或root),文件类型就会消失.如何使其更加永久,至少从同一会话文件调用

解决方法

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确实设置了filetype,但只设置了一次.

所以,至少在我的系统上,模式* / etc / apache2 / sites – * / *会捕获你的文件名并使其成为一个apache文件.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐