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" Set a few indentation parameters. See the VIM help for cinoptions-values for 29" details. These aren't absolute rules; they're just an approximation of 30" common style in LLVM source. 31set cinoptions=:0,g0,(0,Ws 32" Add and delete spaces in increments of `shiftwidth' for tabs 33set smarttab 34 35" Highlight syntax in programming languages 36syntax on 37 38" Enable filetype detection 39filetype on 40 41" LLVM Makefiles can have names such as Makefile.rules or TEST.nightly.Makefile, 42" so it's important to categorize them as such. 43augroup filetype 44 au! BufRead,BufNewFile *Makefile* set filetype=make 45augroup END 46 47" In Makefiles, don't expand tabs to spaces, since we need the actual tabs 48autocmd FileType make set noexpandtab 49 50" Useful macros for cleaning up code to conform to LLVM coding guidelines 51 52" Delete trailing whitespace and tabs at the end of each line 53command! DeleteTrailingWs :%s/\s\+$// 54 55" Convert all tab characters to two spaces 56command! Untab :%s/\t/ /g 57