-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathvimrc
108 lines (92 loc) · 3.15 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
" Part of the "sysrq dotfiles experience". Available at:
" sysrq <[email protected]> https://github.com/sysr-q/dotfiles
"
" This is free and unencumbered software released into the public domain.
"
" Anyone is free to copy, modify, publish, use, compile, sell, or
" distribute this software, either in source code form or as a compiled
" binary, for any purpose, commercial or non-commercial, and by any
" means.
"
" In jurisdictions that recognize copyright laws, the author or authors
" of this software dedicate any and all copyright interest in the
" software to the public domain. We make this dedication for the benefit
" of the public at large and to the detriment of our heirs and
" successors. We intend this dedication to be an overt act of
" relinquishment in perpetuity of all present and future rights to this
" software under copyright law.
"
" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
" EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
" IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
" OTHER DEALINGS IN THE SOFTWARE.
"
" For more information, please refer to <http://unlicense.org>
" I use fish usually, and that doesn't work for some stuff.
set shell=/bin/sh
runtime bundle/vim-pathogen/autoload/pathogen.vim
execute pathogen#infect()
set nocompatible
let mapleader = ","
map <C-n> :NERDTreeToggle<CR>
map <C-m> :GitGutterToggle<CR>
nnoremap ; :
" Make j/k a bit more "natural" by going down the wrapped line, not actual.
nnoremap j gj
nnoremap k gk
nmap <silent> <leader>/ :nohlsearch<CR>
let NERDTreeIgnore = ['\.pyc$', '__pycache__$', 'venv$[[dir]]', 'venv2$[[dir]]', 'venv3$[[dir]]', '.egg-info$[[dir]]']
set laststatus=2
let g:airline_powerline_fonts = 1
let g:airline#extensions#tabline#enabled = 1
" .js is probably me learning React.
let g:jsx_ext_required = 0
let g:go_fmt_autosave = 1
au FileType go nmap <leader>r <Plug>(go-run)
au FileType go nmap <leader>b <Plug>(go-build)
au FileType go nmap <leader>t <Plug>(go-test)
syntax enable
set background=dark
colorscheme solarized
highlight clear SignColumn
" TODO: comment these and arrange them.
set tabstop=4
set smartindent
set shiftwidth=4
set backspace=indent,eol,start
set cc=80
set cursorline
set number
set modeline
set hidden
set scrolloff=10
set smartcase
set splitbelow
set splitright
set shortmess+=I " I probably won't donate buddy.
set title
au VimEnter * RainbowParenthesesToggle
au Syntax * RainbowParenthesesLoadRound
au Syntax * RainbowParenthesesLoadSquare
au Syntax * RainbowParenthesesLoadBraces
augroup fmt
autocmd!
autocmd BufWritePre *.py undojoin | Neoformat! python black
" autocmd BufWritePre *.py Neoformat! python black
augroup END
" NeoVim related stuff.
set timeout
set timeoutlen=750
set ttimeoutlen=250
set pastetoggle=<F12>
" NeoVim handles ESC keys as alt+key, set this to solve the problem
if has('nvim')
set mouse=
set ttimeout
set ttimeoutlen=0
" Awesome line substitution.
set inccommand=nosplit
endif