summaryrefslogtreecommitdiffstats
path: root/vim/.vimrc
blob: a3cdf13fa21991502f1fe85e6ecefe0ff7d78aa6 (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
128
129
130
131
132
"
" basic plugin/ syntax support 
execute pathogen#infect()
filetype plugin indent on
syntax on

autocmd bufwritepost .vimrc source $MYVIMRC

" theming
set t_Co=256
set background=dark
colorscheme molokai
set statusline=%<%f\ %h%m%r%{fugitive#statusline()}%=%-14.(%l,%c%V%)\ %P

set nocompatible

set wrap
set textwidth=79
set formatoptions=qrn1
set colorcolumn=81

set modelines=0
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
set encoding=utf-8
set scrolloff=3
set autoindent
set showmode
set showcmd
set hidden
set wildmenu
set wildmode=list:longest
set visualbell
set cursorline
set ttyfast
set ruler
set backspace=indent,eol,start
set laststatus=2
set relativenumber
set undofile
set autochdir

set ignorecase
set smartcase
set gdefault
set incsearch
set showmatch
set hlsearch

set backup 
set noswapfile 

" backups
set undodir=~/.vim/tmp/undo// 
set backupdir=~/.vim/tmp/backup// 
set directory=~/.vim/tmp/swap// 

if !isdirectory(expand(&undodir))
    call mkdir(expand(&undodir), "p")
endif
if !isdirectory(expand(&backupdir))
    call mkdir(expand(&backupdir), "p")
endif
if !isdirectory(expand(&directory))
    call mkdir(expand(&directory), "p")
endif

let mapleader = ","
nnoremap <leader><space> :noh<cr>
nnoremap <S-Tab> %
nnoremap / /\v
vnoremap / /\v
nnoremap <up> <nop>
nnoremap <down> <nop>
nnoremap <left> <nop>
nnoremap <right> <nop>
inoremap <up> <nop>
inoremap <down> <nop>
inoremap <left> <nop>
inoremap <right> <nop>
nnoremap j gj
nnoremap k gk
nnoremap <F1> :NERDTreeToggle<cr>
nnoremap <F2> :TagbarToggle<cr>
nnoremap <F3> :RainbowParenthesesToggleAll<cr>
nnoremap <c-b> :CtrlPBuffer<cr>
noremap gV '[V']

" allows for sequential indent/desindent by reselecting the text
vnoremap < <gv
vnoremap > >gv

" easy window switching
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l

" window resizing
nnoremap <C-left> <C-w><
nnoremap <C-right> <C-w>>
nnoremap <C-down> <C-w>+
nnoremap <C-up> <C-w>-

" text bubbling
" vnoremap <C-up> xkP'[V']
nnoremap <C-S-up> ddkP
nnoremap <C-S-down> ddp
" vnoremap <C-down> xp'[V']

" folding
set foldlevelstart=99
nnoremap <Space> za
nnoremap <S-Space> zA
vnoremap <S-Space> zA

let g:pymode_lint_write = 0
let g:pymode_utils_whitespaces = 0

autocmd CursorMovedI *  if pumvisible() == 0|silent! pclose|endif
autocmd InsertLeave * if pumvisible() == 0|silent! pclose|endif
autocmd FileType mail set fo+=aw spell

let g:go_highlight_functions = 1
let g:go_highlight_methods = 1
let g:go_highlight_structs = 1
let g:go_highlight_interfaces = 1
let g:go_highlight_operators = 1
let g:go_highlight_build_constraints = 1
let g:go_fmt_command = "goimports"