如何在Vim中根据文件类型加载设置?

时间:2014-03-12 01:39:30

标签: vim

假设我有两组设置用于编写,一组用于编程。如何修改.vimrc以便在处理带有.md扩展名的文件时使用第一个设置加载,后者加载html/js/css个文件?

2 个答案:

答案 0 :(得分:4)

虽然基于:autocmd的{​​{1}}是FileType的快捷方式(正如@andrewdotn所建议的那样),但Vim有一个适当的抽象: filetype插件

将设置和缓冲区本地映射放入~/.vimrc。 (这要求您拥有~/.vim/after/ftplugin/{filetype}.vim;在目录之后使用可以覆盖:filetype plugin on完成的任何默认文件类型设置。)

答案 1 :(得分:2)

使用自动命令。例如,以下是我的~/.vimrc

中的设置
autocmd BufRead,BufNewFile *.js,*.html
      \ setlocal indentkeys=!^F,o
autocmd BufRead,BufNewFile *.md
      \ setlocal filetype=markdown | syntax clear
使用

setlocal代替set,以便只影响与文件名模式匹配的缓冲区。否则,每次加载shiftwidth文件时,对*.foo等选项的更改都会影响所有缓冲区。

\line-continuation character,可让您在多行上拆分单个命令,以提高可读性。

|字符是bar,用于将多个命令链接在一行中。

有关详情,请参阅autocmd.txt in the vim documentation