Filetype-specific tabstops
[dotfiles] / .vimrc
1 " Don't imitate vi.
2 set nocompatible
3
4 " Make tab-completion work more like bash.
5 set wildmenu
6 set wildmode=list:full
7
8 " Ignore certain file extensions when tab-completing.
9 set wildignore=*.swp,*.bak,*.pyc,*.class,*.o,*.exe
10
11 " Set filetype stuff to on.
12 filetype on
13 filetype plugin on
14
15 " Set up autoindentation.
16 set smartindent
17 filetype indent on
18
19 " Example filetype-specific setting:
20 " if has('autocmd')
21 "     autocmd filetype python set expandtab
22 " endif
23
24 " Allow folding.
25 set foldenable
26 set foldmethod=syntax
27 set foldlevelstart=99
28
29 " Show line numbers.
30 set number
31 set numberwidth=4
32
33 " Scroll five lines ahead of cursor.
34 set scrolloff=5
35
36 " Turn off error bells and visual bell
37 set noeb vb t_vb=
38
39 " Set tabs to width 4.
40 filetype plugin indent on
41 set shiftwidth=4
42 set softtabstop=4
43 set tabstop=4
44 set expandtab
45
46 " language-specific settings
47 autocmd FileType html       setlocal shiftwidth=2 softtabstop=2 tabstop=2
48 autocmd FileType javascript setlocal shiftwidth=2 softtabstop=2 tabstop=2
49 autocmd FileType ruby       setlocal shiftwidth=2 softtabstop=2 tabstop=2
50
51 " Allow backspacing over everything in insert mode.
52 set backspace=indent,eol,start
53
54 "Highlight bad spacing.
55 highlight BadSpacing term=standout ctermbg=cyan
56 augroup Spacing
57     autocmd!
58     " Highlight tabulators and trailing spaces
59     autocmd BufNewFile,BufReadPre * match BadSpacing /\(\t\|  *$\)/
60     " Only highlight trailing space in tab-filled formats
61     autocmd FileType help,make match BadSpacing /  *$/
62 augroup END
63
64 " Search as you type.
65 set incsearch
66
67 " Display command and location status.
68 set ruler
69 set showcmd
70
71 " Multiple windows are equally sized and open in reading order.
72 set equalalways
73 set splitbelow splitright
74
75 " Line wrapping off
76 set nowrap
77
78 " Enlarge history and undo/redo buffers.
79 set history=1000
80 set undolevels=1000
81
82 " Reset colors to a clean state.
83 if !has('gui_running')
84     set t_Co=8 t_md=
85 endif
86
87 " Enable syntax highlighting.
88 syntax enable
89
90 " Force vim to sync syntax highlighting from the beginning of the file.
91 syn sync fromstart
92
93 " Set the color scheme to desert.
94 colorscheme desert
95
96 " Unmap the arrow keys to prevent bad habits.
97 noremap  <Up> ""
98 noremap! <Up> <Esc>
99 noremap  <Down> ""
100 noremap! <Down> <Esc>
101 noremap  <Left> ""
102 noremap! <Left> <Esc>
103 noremap  <Right> ""
104 noremap! <Right> <Esc>
105
106 " Automatically reload the .vimrc when changes are made to it
107 au! BufWritePost .vimrc source %