aboutsummaryrefslogtreecommitdiffstats
path: root/vim/vimrc
blob: d95b0f635ddce66c8a414bdece2a249daf2f22ae (plain)
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
" Respect XDG
set viminfo+=n$XDG_CACHE_HOME/vim/viminfo
set directory=$XDG_CACHE_HOME/vim/swap,/tmp
set backupdir=$XDG_CACHE_HOME/vim/backup,/tmp
set undodir=$XDG_CACHE_HOME/vim/undo,/tmp
set runtimepath=$XDG_CONFIG_HOME/vim,$VIM,$VIMRUNTIME,/usr/share/vim/vimfiles,$XDG_CONFIG_HOME/vim/after

" NeoBundle stuff
set runtimepath+=$XDG_CONFIG_HOME/vim/bundle/neobundle.vim/
call neobundle#begin(expand('$XDG_CONFIG_HOME/vim/bundle'))
NeoBundleFetch 'Shougo/neobundle.vim'

NeoBundle 'Shougo/vimproc', {
 \ 'build' : {
 \     'unix' : 'make -f make_unix.mak',
 \     'mac'  : 'make -f make_mac.mak',
 \    },
 \ }
NeoBundle 'Shougo/unite.vim'
NeoBundle 'mattn/emmet-vim'
NeoBundle 'miekg/rfc'
NeoBundle 'tommcdo/vim-exchange'

call neobundle#end()

" Colorscheme
colorscheme Darkcustomside

" Allow backspacing over everything in insert mode
set backspace=indent,eol,start

syntax on
filetype plugin indent on
set autoindent
set copyindent
set number            " always show line numbers
set smartcase         " ignore case if search pattern is all lowercase,
                      "   case-sensitive otherwise
set hlsearch          " highlight search terms
set incsearch         " show search matches as you type
set history=1000
set undolevels=1000
set wildignore=*.swp,*.bak,*.pyc,*.o
set title             " change the terminal's title
set visualbell        " don't beep
set noerrorbells      " don't beep
set ruler
set backup            " use backup files
set undofile          " save undo's after file closes
set mouse=a           " enable mouse in all modes
set shortmess+=I      " don't show the nag-screen
set encoding=utf-8    " oh please, like this needs explanation
set showcmd

" Use space as a leader
map <space> <Leader>
nmap <silent> <Leader>/ :nohlsearch<CR>

cmap w!! w !sudo tee % >/dev/null

" Tabs are 4 spaces wide
set tabstop=4
set shiftwidth=4
set softtabstop=4
set noexpandtab

" Automatically hide buffers instead of requiring bangcommands
set hidden

" Yank to clipboard/selection by default
set clipboard=unnamed,unnamedplus

" Installation check.
NeoBundleCheck

" Easier window moving
map <C-h> <C-w>h
map <C-j> <C-w>j
map <C-k> <C-w>k
map <C-l> <C-w>l

" Show tabs and end-of-line whitespace
set listchars=tab:»·,trail:·
set list

" Color spaces at end of lines bright red for visibility
highlight ExtraWhitespace ctermbg=red guibg=red
match ExtraWhitespace /\s\+$/
autocmd BufWinEnter * match ExtraWhitespace /\s\+$/
autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
autocmd InsertLeave * match ExtraWhitespace /\s\+$/
autocmd BufWinLeave * call clearmatches()

highlight Comment cterm=italic


"" Statusline

set statusline=
set statusline+=[%n]  " Buffer number
set statusline+=%<\   " Where to truncate
set statusline+=%.99f " Relative path to file
set statusline+=\ %y  " Filetype flag, [c]; [help]
set statusline+=%w    " Preview window flag, [Preview]
set statusline+=%m    " Modified flag, [+]; [-]

" Show a warning if file is read only, [RO]
set statusline+=%#identifier#
set statusline+=%r
set statusline+=%*

" Show a warning if file format isn’t unix
set statusline+=%#warningmsg#
set statusline+=%{&ff!='unix'?'['.&ff.']':''}
set statusline+=%*

" Show a warning if file encoding isn’t utf-8
set statusline+=%#warningmsg#
set statusline+=%{(&fenc!='utf-8'&&&fenc!='')?'['.&fenc.']':''}
set statusline+=%*

"" Right side of statusline
set statusline+=%=                   " Left/right separation point
set statusline+=%-15.((%l,%c-%v)\ %) " Line, column, percentage. (20,0)
set statusline+=%P                   " Percentage visible

set laststatus=2 " Always show statusline