-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.vim
211 lines (153 loc) · 6.08 KB
/
config.vim
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
202
203
204
205
206
207
208
209
210
211
" if has("unix")
" let $VIMRUNTIME="/usr/local/share/vim/vim"
" elseif has ("win32")
" let $VIMRUNTIME="C:/Vim/vim74"
" endif
"
" Tabs ************************************************************************
"set sta " a <Tab> in an indent inserts 'shiftwidth' spaces
function Tabstyle_tabs()
" Using 4 column tabs
set softtabstop=4
set shiftwidth=4
set tabstop=4
set noexpandtab
autocmd User Rails set softtabstop=4
autocmd User Rails set shiftwidth=4
autocmd User Rails set tabstop=4
autocmd User Rails set noexpandtab
endfunction
function Tabstyle_spaces()
" Use 2 spaces
set softtabstop=2
set shiftwidth=2
set tabstop=2
set expandtab
endfunction
call Tabstyle_spaces()
set nocompatible " be iMproved, required
filetype on " workaround a bug in mac
filetype off " required
" Indenting *******************************************************************
set autoindent " Automatically set the indent of a new line (local to buffer)
set smartindent " smartindent (local to buffer)
" Scrollbars ******************************************************************
set sidescrolloff=2
set numberwidth=4
" Windows *********************************************************************
set equalalways " Multiple windows, when created, are equal in size
set splitbelow splitright
" Vertical and horizontal split then hop to a new buffer
":noremap <Leader>v :vsp^M^W^W<cr>
":noremap <Leader>h :split^M^W^W<cr>
" Cursor highlights ***********************************************************
"set cursorline
"set cursorcolumn
" Searching *******************************************************************
set hlsearch " highlight search
set incsearch " Incremental search, search as you type
set ignorecase " Ignore case when searching
set smartcase " Ignore case when searching lowercase
" Colors **********************************************************************
"set t_Co=256 " 256 colors
"set background=dark
syntax on " syntax highlighting
set background=dark
"colorscheme solarized
colorscheme molokai
" Status Line *****************************************************************
set showcmd
set ruler " Show ruler
"set ch=2 " Make command line two lines high
"match LongLineWarning '\%120v.*' " Error format when a line is longer than 120
" Line Wrapping ***************************************************************
set nowrap
set linebreak " Wrap at word
" Directories *****************************************************************
" Setup backup location and enable
"set backupdir=~/backup/vim
"set backup
" Set Swap directory
"set directory=~/backup/vim/swap
" Sets path to directory buffer was loaded from
"autocmd BufEnter * lcd %:p:h
" File Stuff ******************************************************************
filetype plugin indent on
" To show current filetype use: set filetype
"autocmd FileType html :set filetype=xhtml
" Sessions ********************************************************************
" Sets what is saved when you save a session
set sessionoptions=blank,buffers,curdir,folds,help,resize,tabpages,winsize
" Invisible characters *********************************************************
set listchars=trail:.,tab:>-,eol:$
set nolist
:noremap <Leader>i :set list!<CR> " Toggle invisible chars
" Mouse ***********************************************************************
"set mouse=a " Enable the mouse
"behave xterm
"set selectmode=mouse
" Misc settings ***************************************************************
set backspace=indent,eol,start
set number " Show line numbers
set matchpairs+=<:>
set vb t_vb= " Turn off bell, this could be more annoying, but I'm not sure how
set nofoldenable " Turn off folding
" -----------------------------------------------------------------------------
" | OS Specific |
" | (GUI stuff goes in gvimrc) |
" -----------------------------------------------------------------------------
" Mac *************************************************************************
"if has("mac")
""
"endif
" Windows *********************************************************************
"if has("gui_win32")
""
"endif
" -----------------------------------------------------------------------------
" | Startup |
" -----------------------------------------------------------------------------
" Open NERDTree on start
"autocmd VimEnter * exe 'NERDTree'
"autocmd VimEnter * exe 'Tlist' | wincmd h
" -----------------------------------------------------------------------------
" | Host specific |
" -----------------------------------------------------------------------------
if filereadable(expand("~/.vimrc.local"))
source ~/.vimrc.local
endif
"if hostname() == "foo"
" do something
"endif
" Example .vimrc.local:
"call Tabstyle_tabs()
"match LongLineWarning '\%120v.*'
"autocmd User ~/git/some_folder/* call Tabstyle_spaces() | let g:force_xhtml=1
"set statusline=FILE_NAME:%1*[%f(%Y)]%*\ ENCODING:%1*[%{&enc}]%*\ LINE_NUM:%1*[%l/%L]%*\ LOCATION:%1*[%p%%]%*\ VAULE_BYTE:%1*[%b]%*\ %h%m%r%=%-14.(%l,%c%V%)]\ %P
set laststatus=2
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
"ettings {{{
"" makefile
au BufNewFile,BufReadPost Makefile* set noet
au BufNewFile,BufReadPost makefile* set noet
au BufNewFile,BufReadPost *.mk set noet
" actionscript
au BufNewFile,BufReadPost *.as set filetype=actionscript
au BufNewFile,BufReadPost *.mxml set filetype=mxml
" diff
au BufNewFile,BufReadPost diff.log set filetype=diff
" tex
au BufNewFile,BufReadPost *.tex set et fileencoding=utf-8
" json
au BufNewFile,BufReadPost *.json set filetype=javascript
" ejs
au BufNewFile,BufReadPost *.ejs set filetype=html
" coffeescript
au BufNewFile,BufReadPost *.coffee set et filetype=coffeescript
" python
au BufNewFile,BufReadPost *.py set et filetype=python
" typescript
au BufNewFile,BufReadPost *.ts set filetype=typescript
" }}}