所以我正在尝试为python和web开发设置我的vimrc。这就是我的vimrc的样子。
"--------------vundle------------------------
set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
"add plugins here
Plugin 'VundleVim/Vundle.vim'
Plugin 'tpope/vim-surround'
Plugin 'itchyny/lightline.vim'
call vundle#end()
filetype plugin indent on
"------------------end of vundle-------------------
"--------------python development-----------------
"PEP8 python indentation and formatting
au BufNewFile,BufREad *.py
\ set tabstop=4
\ set softtabstop=4
\ set shiftwidth=4
\ set textwidth=79
\ set expandtab
\ set autoindent
\set fileformat=unix
let python_highlight_all=1
syntax on
"---------------web development------------------
"basic tab spacing for html, css and js
au BufNewFile,BufRead *.js, *.html, *.css
\ set tabstop=2
\set softtabstop=2
\set shiftwidth=2
然而,当我打开或创建一个html文件时,它会缩进8个空格而不是2.我缺少什么?
谢谢!
答案 0 :(得分:4)
您可以通过
查看缩进选项的设置位置:verbose setlocal ts? sts? sw? et?
我相信您的情况,问题在于:autocmd
:
au BufNewFile,BufRead *.js, *.html, *.css
模式之间一定不能有空格:
au BufNewFile,BufRead *.js,*.html,*.css
见:help autocmd-patterns
;它讨论了以逗号分隔的列表,并且那里的示例也没有空格。
通过对各种语言的文件模式进行编码,您可以复制内置的文件类型检测。
我建议将这些:setlocal
命令放入~/.vim/after/ftplugin/html.vim
(依此类推。这要求您拥有:filetype plugin on
;在目录允许后使用您要覆盖$VIMRUNTIME/ftplugin/html.vim
完成的任何默认文件类型设置。)
或者,您可以直接在:autocmd FileType {filetype\} ...
中定义~/.vimrc
。这至少可以避免文件模式的重复,但是一旦你进行了很多自定义,就会变得难以处理。