]> git.r.bdr.sh - rbdr/dotfiles/blame - vimrc
Add ripgrep vim plugin
[rbdr/dotfiles] / vimrc
CommitLineData
b100af91
BB
1set nocompatible
2
3set number
4set ruler
5syntax on
6
7" Set encoding
8set encoding=utf-8
9
10" Whitespace stuff
11set nowrap
12set tabstop=2
13set shiftwidth=2
14set softtabstop=2
15set expandtab
16set list listchars=tab:\ \ ,trail:·
17
18" Searching
19set hlsearch
20set incsearch
21set ignorecase
22set smartcase
23
24" Tab completion
25set wildmode=list:longest,list:full
26set wildignore+=*.o,*.obj,.git,*.rbc,*.class,.svn,vendor/gems/*
27
28" Status bar
29set laststatus=2
30
b100af91
BB
31" NERDTree configuration
32let NERDTreeIgnore=['\.pyc$', '\.rbc$', '\~$']
33map <Leader>n :NERDTreeToggle<CR>
34
35" CTags
36map <Leader>rt :!ctags --extra=+f -R *<CR><CR>
37map <C-\> :tnext<CR>
38
39" Remember last location in file
40if has("autocmd")
41 au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
42 \| exe "normal g'\"" | endif
43endif
44
45function s:setupWrapping()
46 set wrap
47 set wrapmargin=2
48 set textwidth=72
49endfunction
50
51function s:setupMarkup()
52 call s:setupWrapping()
53 map <buffer> <Leader>p :Hammer<CR>
54endfunction
55
56" make uses real tabs
57au FileType make set noexpandtab
58
59" Thorfile, Rakefile, Vagrantfile and Gemfile are Ruby
60au BufRead,BufNewFile {Gemfile,Rakefile,Vagrantfile,Thorfile,config.ru} set ft=ruby
61
62" md, markdown, and mk are markdown and define buffer-local preview
63au BufRead,BufNewFile *.{md,markdown,mdown,mkd,mkdn} call s:setupMarkup()
64
65" add json syntax highlighting
66au BufNewFile,BufRead *.json set ft=javascript
67
68au BufRead,BufNewFile *.txt call s:setupWrapping()
69
70" make Python follow PEP8 ( http://www.python.org/dev/peps/pep-0008/ )
71au FileType python set softtabstop=4 tabstop=4 shiftwidth=4 textwidth=79
72
6e876679
BB
73" snes syntax highlighting
74au BufNewFile,BufRead *.asm,*.s set filetype=snes"
75
b100af91
BB
76" allow backspacing over everything in insert mode
77set backspace=indent,eol,start
78
79" load the plugin and indent settings for the detected filetype
80filetype plugin indent on
32081fee 81filetype plugin on
b100af91
BB
82
83" Opens an edit command with the path of the currently edited file filled in
84" Normal mode: <Leader>e
85map <Leader>e :e <C-R>=expand("%:p:h") . "/" <CR>
86
87" Opens a tab edit command with the path of the currently edited file filled in
88" Normal mode: <Leader>t
89map <Leader>te :tabe <C-R>=expand("%:p:h") . "/" <CR>
90
91" Inserts the path of the currently edited file into a command
92" Command mode: Ctrl+P
93cmap <C-P> <C-R>=expand("%:p:h") . "/" <CR>
94
95" Unimpaired configuration
96" Bubble single lines
97nmap <C-Up> [e
98nmap <C-Down> ]e
99" Bubble multiple lines
100vmap <C-Up> [egv
101vmap <C-Down> ]egv
102
b100af91
BB
103" gist-vim defaults
104if has("mac")
105 let g:gist_clip_command = 'pbcopy'
106elseif has("unix")
107 let g:gist_clip_command = 'xclip -selection clipboard'
108endif
109let g:gist_detect_filetype = 1
110let g:gist_open_browser_after_post = 1
111
112" Use modeline overrides
113set modeline
114set modelines=10
115
116" Default color scheme
117set t_Co=256
551714b7 118color molokai
b100af91
BB
119
120" Directories for swp files
dad27356
BB
121set backupdir=~/.vim/.backup
122set directory=~/.vim/.backup
b100af91
BB
123
124" Turn off jslint errors by default
125let g:JSLintHighlightErrorLine = 0
126
127" MacVIM shift+arrow-keys behavior (required in .vimrc)
128let macvim_hig_shift_movement = 1
129
130" % to bounce from do to end etc.
131runtime! macros/matchit.vim
132
133" Show (partial) command in the status line
134set showcmd
135
136" Include user's local vim config
137if filereadable(expand("~/.vimrc.local"))
138 source ~/.vimrc.local
139endif
140
141" Mapping for TagBar
142nmap <F8> :TagbarToggle<CR>
3a1cd689 143let g:tagbar_ctags_bin="/usr/local/bin/ctags"
b100af91 144
b100af91 145" Color Column
9fbf161b 146let &colorcolumn="80,150"
b100af91
BB
147
148" Add Pathogen
149call pathogen#infect()
150
151" Folding Settings
152set foldmethod=syntax
153set foldnestmax=10
154set nofoldenable
155set foldlevel=1
321ecaca 156
3a1cd689
BB
157" Fix CtrlP root folder and add some ignores
158let g:ctrlp_working_path_mode = 0
07c693d2 159let g:ctrlp_custom_ignore = '\v[\/](\.(git|hg|svn)|node_modules|DS_Store)$'
551714b7 160let g:ctrlp_user_command = ['.git', 'cd %s && git ls-files']
7da00f60
BB
161
162" Relative numbers
b4df7438
BB
163autocmd FocusLost * :set norelativenumber
164autocmd InsertEnter * :set norelativenumber
7da00f60
BB
165autocmd InsertLeave * :set relativenumber
166autocmd CursorMoved * :set relativenumber
167
168function! NumberToggle()
169 if(&relativenumber == 1)
b4df7438 170 set norelativenumber
7da00f60
BB
171 else
172 set relativenumber
173 endif
174endfunction
175
176nnoremap <C-n> :call NumberToggle()<cr>
35771083 177
b4df7438
BB
178" Syntastic stuff
179let g:syntastic_javascript_checkers = ['eslint']
180let g:syntastic_always_populate_loc_list = 1
181let g:syntastic_check_on_open = 1
182let g:syntastic_check_on_wq = 1
183let g:syntastic_error_symbol = "✕"
184let g:syntastic_warning_symbol = "⚠︎"
f9b5f766
BB
185
186" Dank Mono Italics
187highlight Keyword cterm=italic