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