aboutsummaryrefslogtreecommitdiff
path: root/init.vim
blob: 1f733eea759e143804015d8ac9a064233d6a045e (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
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


" Maily for the ability to match HTML tags with '%'
" Apparently this is apart of the mainline vim install? Cool.
runtime macros/matchit.vim


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

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=4
	set shiftwidth=4
	set expandtab
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()
	syntax off
	set nolist
	set noic
	set nolist
endfunction
function SetYamlOptions()
	set expandtab
	set tabstop=2
	set noic
endfunction

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

" Backslash l
nmap <leader>l :set list!<CR>
" If you want listchars
set list
" set listchars=tab:\|\ 
set listchars=tab:\|\ ,eol:¬,trail:•
" set listchars=tab:▸\ ,eol:¬,trail:•
" set listchars=tab:▸\ ,eol:¬
" set listchars=tab:\|\ ,eol:↴
" set listchars=tab:\|\ ,eol:$
" set listchars=tab:\⇒\ ,eol:↴
" Tabs show up as MARCON, aka 0xC2 0xAF
" Misc symbols for tabs: ¯ ⇒ ⇥ ⇨ ⇏ ⇸ →

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


let s:hidden_all = 1
set noshowmode
set noruler
set laststatus=0
set noshowcmd
function! ToggleHiddenAll()
	if s:hidden_all  == 0
		let s:hidden_all = 1
		set noshowmode
		set noruler
		set laststatus=0
		set noshowcmd
	else
		let s:hidden_all = 0
		set showmode
		set ruler
		set laststatus=2
		set showcmd
	endif
endfunction

nnoremap <S-h> :call ToggleHiddenAll()<CR>


" Line numbers
set nu

" Derp
set background=dark
syntax on
" syntax off
" colorscheme distinguished