-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinit.vim
155 lines (130 loc) · 3.9 KB
/
init.vim
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
" Options
" clojure
" let g:sexp_enable_insert_mode_mappings = 0
" let g:sexp_filetypes = 'clojure'
" let g:rainbow_active = 1
" editing
set expandtab
set tabstop=2
set softtabstop=2
set sw=2
set shiftround
" No mouse
set mouse=
set encoding=utf-8
set fileencoding=utf-8
" Key Bindings
" variables
let mapleader = ","
let maplocalleader = "\\"
" netrw
let g:netrw_liststyle = 3
let g:netrw_banner = 0
let g:netrw_browse_split = 1
" editing vimrc
nnoremap <leader>ve :split ~/dots/init.vim<cr>
nnoremap <leader>vs :!bash ~/dots/dots.sh<cr><cr>:source ~/dots/init.vim<cr>
" normal bindings
noremap <c-u> viwU
nnoremap H 0
nnoremap L $
nnoremap J }
nnoremap K {
vnoremap H 0
vnoremap L $
vnoremap J }
vnoremap K {
nnoremap <leader>r :r!
nnoremap <leader>f gqip
nnoremap <leader><Space> :%s/\s\+$//<cr>
nnoremap <leader>/ :noh<cr>
nnoremap Q <nop>
" surrounding
nnoremap <leader>" viw<esc>a"<esc>hbi"<esc>lel
nnoremap <leader>' viw<esc>a'<esc>hbi'<esc>lel
nnoremap <leader>( viw<esc>a)<esc>hbi(<esc>lel
nnoremap <leader>{ viw<esc>a}<esc>hbi{<esc>lel
nnoremap <leader>[ viw<esc>a]<esc>hbi[<esc>lel
nnoremap <leader>< viw<esc>a><esc>hbi<<esc>lel
" Automatic Bindings
augroup everything
autocmd!
" buffers
autocmd BufWrite * mkview
autocmd BufRead * silent! loadview
" commenting
autocmd FileType {javascript,c,cpp} nnoremap <buffer> <localleader>c I//<esc>
autocmd FileType {python,ruby,sh,perl} nnoremap <buffer> <localleader>c I#<esc>
autocmd FileType vim nnoremap <buffer> <localleader>c I"<esc>
autocmd FileType {tex,plaintex} nnoremap <buffer> <localleader>c I%<esc>
" compile or run
autocmd FileType {tex,plaintex} nnoremap <buffer> <localleader>r :!pdflatex %<esc>
" Syntax
autocmd BufNewFile,Bufread *.exs set syntax=elixir
autocmd BufNewFile,Bufread *.ex set syntax=elixir
autocmd BufNewFile,Bufread *.ts set syntax=typescript
autocmd BufNewFile,Bufread *.tsx set syntax=typescript
autocmd BufNewFile,Bufread *.tf set syntax=terraform
autocmd BufNewFile,Bufread *.pug set syntax=pug
autocmd BufNewFile,Bufread *.graphql set syntax=graphql
" netrw
autocmd FileType netrw setl bufhidden=delete
" Plugins
" start by loading plugin.vim
if empty(glob('~/.local/share/nvim/site/autoload/plug.vim'))
silent !curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif
" load some plugins
" Must also do :CocInstall coc-tsserver and then go to :CocList extensions and enable, because the tsserver doesn't play nice with Plug
call plug#begin("~/.local/share/nvim/plugged")
Plug 'neoclide/coc.nvim', {'do': { -> coc#util#install()}}
Plug 'sheerun/vim-polyglot'
" Plug 'airblade/vim-gitgutter'
" Plug 'vim-airline/vim-airline'
" Plug 'vim-airline/vim-airline-themes'
Plug 'tpope/vim-surround'
Plug 'rking/ag.vim'
" Plug 'luochen1990/rainbow'
" Plug 'guns/vim-sexp'
" Plug 'tpope/vim-sexp-mappings-for-regular-people'
call plug#end()
" ag
nnoremap <leader>a :Ag<space>
" airline
" let g:airline_theme='solarized'
" display
syntax on
" set termguicolors
" colorscheme base16-default-dark
" set background=light
set number
set ruler
set guicursor=
set laststatus=0
" No autoindent, dammit
set nocindent
set nosmartindent
set noautoindent
set indentexpr=
filetype indent off
set formatoptions-=cro
" CoC
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>"
let g:coc_user_config = {}
let g:coc_user_config['coc.preferences.jumpCommand'] = 'sp'
nnoremap gd :call CocAction('jumpDefinition')<cr>
" End Automatic Bindings
augroup END
" Use K to show documentation in preview window
nnoremap <silent> K :call <SID>show_documentation()<CR>
function! s:show_documentation()
if (index(['vim','help'], &filetype) >= 0)
execute 'h '.expand('<cword>')
else
call CocAction('doHover')
endif
endfunction