代码之家  ›  专栏  ›  技术社区  ›  wyc

如何在Vim中加载基于文件类型的设置?

vim
  •  3
  • wyc  · 技术社区  · 12 年前

    假设我有两组设置,一组用于编写,另一组用于编程。如何修改我的 .vimrc 以便在使用 .md 扩展,后者具有 html/js/css 一个?

    2 回复  |  直到 12 年前
        1
  •  5
  •   Ingo Karkat    12 年前

    虽然 :autocmd s基于 FileType 是您 ~/.vimrc (正如@andrewdotn所建议的),Vim对此有一个恰当的抽象: 文件类型插件 .

    将设置和缓冲区本地映射放入 ~/.vim/after/ftplugin/{filetype}.vim 。(这要求您 :filetype plugin on ; 使用 之后 目录允许您覆盖由 $VIMRUNTIME/ftplugin/{filetype}.vim .)

        2
  •  4
  •   andrewdotn    12 年前

    使用自动命令。例如,以下是我的 ~/.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 了解更多信息。