1" LLVM coding guidelines conformance for VIM 2" 3" Maintainer: The LLVM Team, http://llvm.org 4" WARNING: Read before you source in all these commands and macros! Some 5" of them may change VIM behavior that you depend on. 6" 7" You can run VIM with these settings without changing your current setup with: 8" $ vim -u /path/to/llvm/utils/vim/vimrc 9 10" It's VIM, not VI 11set nocompatible 12 13" Wrap text at 80 cols 14set textwidth=80 15 16" A tab produces a 2-space indentation 17set softtabstop=2 18set shiftwidth=2 19set expandtab 20 21" Highlight trailing whitespace 22highlight WhitespaceEOL ctermbg=DarkYellow guibg=DarkYellow 23match WhitespaceEOL /\s\+$/ 24 25" Optional 26" C/C++ programming helpers 27set cindent 28" Don't indent switch case labels beyond the switch. 29set cinoptions=:0 30" Add and delete spaces in increments of `shiftwidth' for tabs 31set smarttab 32 33" Highlight syntax in programming languages 34syntax on 35 36" Enable filetype detection 37filetype on 38 39" LLVM Makefiles can have names such as Makefile.rules or TEST.nightly.Makefile, 40" so it's important to categorize them as such. 41augroup filetype 42 au! BufRead,BufNewFile *Makefile* set filetype=make 43augroup END 44 45" In Makefiles, don't expand tabs to spaces, since we need the actual tabs 46autocmd FileType make set noexpandtab 47 48" Useful macros for cleaning up code to conform to LLVM coding guidelines 49 50" Delete trailing whitespace and tabs at the end of each line 51command! DeleteTrailingWs :%s/[\ \t]\+$// 52 53" Convert all tab characters to two spaces 54command! Untab :%s/\t/ /g 55