aboutsummaryrefslogtreecommitdiff
path: root/init.vim
blob: fae6d29ad8e14ecd084b94900a80e3f816e1a232 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
set encoding=utf-8  " The encoding displayed.
set fileencoding=utf-8  " The encoding written to file.

set colorcolumn=80

" Apparently there are security issues with this?
set nomodeline

execute pathogen#infect('bundle/{}', 'themes/{}')

" Allow me to hide buffers w/o saving
" set hidden

" Persistent undo
set undofile
set undodir=~/.vimundo
set undolevels=1000
set undoreload=10000

" lots of history, it's always nice to find old nasty command that happen
" to be really useful
set history=10000
"
" Keep the newbs from using arrow keys
inoremap <Left>  <NOP>
inoremap <Right> <NOP>
inoremap <Up>    <NOP>
inoremap <Down>  <NOP>

" Always show status line
" set laststatus=2

" Case insensitive searching by default
set ic
" Highlight my searches by default
set hls

" No more swap files
set updatecount=0

" Vi in-compatibility
set nocompatible

" Bring down the tab spacing
set tabstop=4
set shiftwidth=4
set noexpandtab

map <C-n> :NERDTreeToggle<CR>

" To enable/disable the autocomplete dropdown
nmap <leader> [ :AcpDisable<CR>
nmap <leader> ] :AcpEnable<CR>

" Omni completion
filetype plugin on
set omnifunc=syntaxcomplete#Complete

let g:ctrlp_follow_symlinks = 1
let g:ctrlp_working_path_mode = 0

" Enable the list of buffers
let g:airline#extensions#tabline#enabled = 1

" Show just the filename
let g:airline#extensions#tabline#fnamemod = ':t'

if !exists('g:airline_symbols')
  let g:airline_symbols = {}
endif
let g:airline_symbols.space = "\ua0"

let g:airline_section_z = airline#section#create(['windowswap', '%3p%% ', 'linenr', ':%3v'])


autocmd Filetype python call SetPythonOptions()
autocmd Filetype htmldjango call SethtmldjangoOptions()
autocmd Filetype json call SetJsonOptions()
autocmd Filetype javascript call SetjavascriptOptions()
autocmd Filetype php call SetPHPOptions()
autocmd Filetype html call SetHTMLOptions()
autocmd Filetype sh call SetShellOptions()
autocmd Filetype go call SetGoOptions()
autocmd Filetype yaml call SetYamlOptions()
autocmd Filetype markdown call SetMarkdownOptions()

function SetMarkdownOptions()
	set spell
	set tabstop=2
	set shiftwidth=2
	set expandtab
	AcpDisable
endfunction
function SetPythonOptions()
	set tabstop=4
	set shiftwidth=4
	set expandtab
	filetype indent on
	set smartindent
endfunction
function SetjavascriptOptions()
	set tabstop=2
	set shiftwidth=2
	set expandtab
	filetype indent on
	set smartindent
endfunction
function SetJsonOptions()
	set tabstop=3
	set shiftwidth=3
	set expandtab
	filetype indent on
	set smartindent
endfunction
function SethtmldjangoOptions()
  set tabstop=2
  set shiftwidth=2
  set expandtab
  filetype indent on
  set smartindent
endfunction
function SetPHPOptions()
	set colorcolumn=120
	set tabstop=4
	set shiftwidth=4
	set expandtab
	filetype indent on
	set smartindent
endfunction
function SetHTMLOptions()
	set colorcolumn=120
	set tabstop=2
	set shiftwidth=2
	set expandtab
	filetype indent on
	set smartindent
endfunction
function SetShellOptions()
	set tabstop=4
	set shiftwidth=4
	set noexpandtab
	filetype indent on
	set smartindent
endfunction
function SetGoOptions()
	set tabstop=8
	set noexpandtab
	# The ACP is pretty slow with my Go plugins enabled
	AcpDisable
	set nolist
	set noic
	set nolist
endfunction
function SetYamlOptions()
	" set listchars=tab:▸\ ,eol:¬,trail:•,space:·
	set tabstop=2
	set shiftwidth=2
	set expandtab
	set listchars=tab:▸\ ,eol:¬,trail:•
	set expandtab
	set noic
endfunction

" This is specifically for Salt's state files 'sls'
autocmd BufNewFile,BufRead *.sls set filetype=yaml


function! PhpSyntaxOverride()
  hi! def link phpDocTags  phpDefine
  hi! def link phpDocParam phpType
endfunction

augroup phpSyntaxOverride
  autocmd!
  autocmd FileType php call PhpSyntaxOverride()
augroup END
" Backslash l
nmap <leader>l :set list!<CR>
" If you want listchars
set list
" If you don't have a UTF8 compatible terminal you'll want to use this line
" instead
" set listchars=tab:\|\ 
set listchars=tab:▸\ ,eol:¬,trail:•

" Be smart about the mouse
set mouse+=a
if &term =~ '^screen'
	" tmux knows the extended mouse mode
	set ttymouse=xterm2
endif


" Line numbers
set nu
" Backslash-n ( \-n ) will toggle line numbers on and off
nmap <leader>n :set invnu<CR>

" Derp
syntax on
colorscheme distinguished