-
Notifications
You must be signed in to change notification settings - Fork 0
/
.vimrc
211 lines (161 loc) · 4.37 KB
/
.vimrc
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
" --------------------------------------------------------
" VIM Settings
" --------------------------------------------------------
" Don't try to be vi compatible
set nocompatible
" Installs Plug plugin manager
let data_dir = has('nvim') ? stdpath('data') . '/site' : '~/.vim'
if empty(glob(data_dir . '/autoload/plug.vim'))
silent execute '!curl -fLo '.data_dir.'/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif
call plug#begin()
Plug 'scrooloose/nerdtree'
Plug 'vim-airline/vim-airline'
Plug 'davidhalter/jedi-vim'
Plug 'raimondi/delimitmate'
call plug#end()
" Activate hybrid line numbers
" set nu rnu
" Helps force plugins to load correctly when it is turned back on below
filetype off
" Turn on syntax highlighting
syntax on
"stop vim from highlighting spaces weird
let g:go_highlight_trailing_whitespace_error=0
"let g:go_highlight_chan_whitespace_error=0
"let g:go_highlight_space_tab_error=0
"au InsertEnter *.go match goSpaceError /\s\+\%#\@<!$/
"au InsertLeave *.go match goSpaceError /\s\+$/
" For plugins to load correctly
filetype plugin indent on
" TODO: Pick a leader key
" let mapleader = ","
" Security
set modelines=0
" Show line numbers
set number
"width of document and line mark
"set tw=79
"set colorcolumn=80
"highlight ColorColumn ctermbg=233
" Make line numbers grey
highlight LineNr ctermfg=grey
" Show current cursor position
" set cursorline
" Show file stats
set ruler
" Blink cursor on error instead of beeping (grr)
"set visualbell
" Encoding
set encoding=utf-8
" Whitespace
" visually wraps line
set wrap
" breaks on whitespace instead of random character
set linebreak
" indents after linebreak to aid visibility
set breakindent
" adds char to also visually aid linebreak
set showbreak=ͱ
set autoindent
"set textwidth=79
set formatoptions=tcqrn1
" tab and space size
set tabstop=4
" indentation length when > is used
set shiftwidth=4
" set expandtab converts tabs into spaces, noexpandtab would do the opposite
set expandtab
"make mouse usable
set mouse=a
" Show invisibles (whitespaces)
":set listchars=eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:␣
":set list
" Change cursor type on insert mode
let &t_SI.="\e[5 q"
let &t_SR.="\e[4 q"
let &t_EI.="\e[1 q"
"Insert closing brackets automatically
"Should be done by plugin: delimitMate
"inoremap { {}<Left>
"inoremap {<CR> {<CR>}<Esc>O
"inoremap {{ {
"inoremap {} {}
"inoremap ( ()<Left>
"inoremap (<CR> (<CR>)<Esc>O
"inoremap (( (
"inoremap () ()
"inoremap [ []<Left>
"inoremap [<CR> [<CR>]<Esc>O
"inoremap [[ [
"inoremap [] []
" Cursor motion
set scrolloff=3
set backspace=indent,eol,start
set matchpairs+=<:> " use % to jump between pairs
runtime! macros/matchit.vim
"Remap navigation of panes to control + h/j/k/l for direction
map <C-j> <C-W>j
map <C-k> <C-W>k
map <C-h> <C-W>h
map <C-l> <C-W>l
"Remap resizing of panes to + and - only
if bufwinnr(1)
map + <C-W>+
map - <C-W>-
endif
" Make fj do esc
inoremap fj <Esc>
" Make it work on visual mode as well
xnoremap fj <Esc>
" Move up/down editor lines
nnoremap j gj
nnoremap k gk
" Allow hidden buffers
set hidden
" Rendering
set ttyfast
" Status bar
set laststatus=2
hi StatusLine ctermbg=grey ctermfg=white
" Last line
set showmode
set showcmd
" Searching
nnoremap / /\v
vnoremap / /\v
set hlsearch
set incsearch
set ignorecase
set smartcase
set showmatch
map <leader><space> :let @/=''<cr> " clear search
" Remap help key.
inoremap <F1> <ESC>:set invfullscreen<CR>a
nnoremap <F1> :set invfullscreen<CR>
vnoremap <F1> :set invfullscreen<CR>
" Textmate holdouts
" Formatting
map <leader>q gqip
" Visualize tabs and newlines
set listchars=tab:▸\ ,eol:¬
" Uncomment this to enable by default:
" set list " To enable by default
" Or use your leader key + l to toggle on/off
map <leader>l :set list!<CR> " Toggle tabs and EOL
" Color scheme (terminal)
set t_Co=256
set background=dark
let g:solarized_termcolors=256
let g:solarized_termtrans=1
" put https://raw.github.com/altercation/vim-colors-solarized/master/colors/solarized.vim
" in ~/.vim/colors/ and uncomment:
" colorscheme solarized
" color scheme (colorscheme)
colorscheme desert
"-------------------------------
"custom commands
"-------------------------------
" compiles and writes the current latex file
:command Wl w <bar> !pdflatex %