-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvimrc
More file actions
230 lines (191 loc) · 6.06 KB
/
vimrc
File metadata and controls
230 lines (191 loc) · 6.06 KB
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
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
syntax on
set nocompatible
set backspace=indent,eol,start
set noerrorbells
set belloff=all
set tabstop=4 softtabstop=4
set shiftwidth=4
set expandtab
set smartindent
"set nowrap
set wrap
set ignorecase
set smartcase
set noswapfile
set nobackup
set undofile
set undodir=~/vimfiles/undodir
set incsearch
set foldmethod=syntax
set foldlevelstart=99 "open all folds
set encoding=utf8
set guioptions-=a
set diffopt=vertical
set autoread
au FocusGained * :checktime
"set colorcolumn=80
"highlight ColorColumn ctermbg=0
set clipboard=unnamed "Disabling temporarily so I can figure out if clipboard
"is causing lags in Visual Studio
"https://github.com/VsVim/VsVim/issues/2035
set clipboard=unnamed
set nu
set rnu
set shell=$COMSPEC "
"not entirely sure what this does but it's supposed to fix issue with
"omnisharp where intellisense gets out of date
"https://github.com/OmniSharp/omnisharp-vim/issues/660
"set hidden
"space leader
let mapleader = " "
nnoremap <c-q> <c-v>
"nnoremap <c-r> viw"0P
"Scroll down
nnoremap <C-U> <C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y>M
"Scroll up
map <C-D> <C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E>M
"Put on line below
nnoremap <c-j> :pu<CR>
nnoremap <c-k> :pu!<CR>
if executable('rg')
let g:rg_derive_root='true'
endif
" Quickly open/reload vimrc
nnoremap <leader>rc :tabe $HOME/vimfiles/vimrc<CR>
nnoremap <leader>grc :tabe $HOME/vimfiles/gvimrc<CR>
nnoremap <leader>vrc :tabe $HOME/.vsvimrc<CR>
nnoremap <leader>nrc :tabe $HOME/appdata/local/nvim/init.vim<CR>
nnoremap <leader>so :source $HOME/vimfiles/vimrc<CR>
nnoremap <leader>gso :source $HOME/vimfiles/gvimrc<CR>
nnoremap <leader>q :q<CR>
nnoremap <leader>Q :q!<CR>
nnoremap <c-s> :w<CR>
inoremap <c-s> <C-O>:w<CR>
nnoremap <c-t> :tabe<CR>
"VStudio forward and back mappings
nnoremap <C--> <C-o>
nnoremap <C-S-_> <C-i>
nnoremap <c-p> :FZF<CR>
nnoremap <c-f> :Rg<Space>
nnoremap <leader>9 :tabprev<CR>
nnoremap <leader>0 :tabnext<CR>
nnoremap <leader>dd :%d<CR> "delete all lines in file
nnoremap <leader>vv ggVG "highlight all lines in file
nnoremap <leader>h :wincmd h<CR>
nnoremap <leader>j :wincmd j<CR>
nnoremap <leader>k :wincmd k<CR>
nnoremap <leader>l :wincmd l<CR>
"format json
nnoremap <leader>fj :%!python -m json.tool<CR> :set syntax=json<CR>
"remove escape characters and starting and ending quotes from copied json
nnoremap <leader>/j V:s/\\//g0x$x<CR>
nnoremap <leader>/jrn V:s/\\r\\n//g0x$x<CR>
"toggle blackslash/forwardslash in selection
vnoremap <leader>// :s,\\,/,g<CR>
vnoremap <leader>\\ :s,/,\\,g<CR>
"Copy open file path
noremap <F1> :let @+=expand("%:p")<CR>
noremap <leader>; :set rnu!<CR>
noremap <leader># :set rnu!<CR>
"capital y should yank to end of line, just like capital c and capital d
"operates to the end of the line
nnoremap Y y$
nnoremap V v$
vnoremap v V
" CTRL-C and are Copy to windows clipboard
vnoremap <C-C> "+y
"make certain characters undoable in insert mode
inoremap , ,<c-g>u
inoremap . .<c-g>u
inoremap [ [<c-g>u
inoremap ! !<c-g>u
inoremap ? ?<c-g>u
"ability to move highlighted lines up and down
vnoremap J :m '>+1<CR>gv=gv
vnoremap K :m '<-2<CR>gv=gv
"open (what? 2022/08/03)
"nnoremap <C-o> :open<CR>
"recent files
nnoremap <leader>? :browse oldfiles<CR>
"unity debug log
"nnoremap <leader>db op0iDebug.Log($"{A}");
nnoremap <leader>db oDebug.Log($"{}");hhhP0wf{iPpa:0w
"Remove empty lines
"g/^$/d
"Reload vimrc on save
"autocmd! bufwritepost .vimrc source %
"good to know:
"nnoremap stands for normal-no-recursive-map
"browse oldfiles brings up recently edited files
"
nnoremap <leader>? :browse oldfiles<CR>
"Auto insert matching brace, quote, etc
"inoremap { {<CR>}<Esc>O
"inoremap ( ()<Esc>ha
"inoremap [ []<Esc>ha
"inoremap " ""<Esc>ha
"inoremap ' ''<Esc>ha
"inoremap ` ``<Esc>ha
"G is from Git-fugitive
command StashAll G add . | G stash
command Sta StashAll
command StashPop G stash pop
command Stp StashPop
command Nuke G reset --hard | G clean -fd
command Chm G checkout master
command CheckoutPrevious G checkout -
command Chp CheckoutPrevious
command MergeMaster G checkout master | G pull | G checkout - | G merge master
command Mm MergeMaster
"good to know:
"nnoremap stands for normal-no-recursive-map
"vim diff command
":vert diffs otherfile.config
"make numbered list from 1 to 10
"put =range(1,10)
"multi cursor editing
" Ctrl V, Shift I to insert on multiple lines
"gcc to toggle comments
"to compare two files, create a vsplit (ctrl-w, v)(or :vsplit)
"open the other file in the other split (ctrl-p, find file)
"in one of the splits, enter :windo diffthis
"https://old.reddit.com/r/vim/comments/hjblbb/vimdiff_builtin_tool_to_compare_two_or_more_files/
"Surround VSVim bindings
"https://github.com/VsVim/VsVim/issues/1474#issuecomment-417782010
" Surround simulating bindings
nnoremap s) ciw(<C-r>")<Esc>
nnoremap s] ciw[<C-r>"]<Esc>
nnoremap s} ciw{<C-r>"}<Esc>
nnoremap s> ciw<lt><C-r>"><Esc>
nnoremap s" ciw"<C-r>""<Esc>
nnoremap s' ciw'<C-r>"'<Esc>
nnoremap sw) ciW(<C-r>")<Esc>
nnoremap sw] ciW[<C-r>"]<Esc>
nnoremap sw} ciW{<C-r>"}<Esc>
nnoremap sw> ciW<lt><C-r>"><Esc>
nnoremap sw" ciW"<C-r>""<Esc>
nnoremap sw' ciW'<C-r>"'<Esc>
" Surround delete bindings
"nnoremap ds) vi(dvhp
"nnoremap ds] vi[dvhp
"nnoremap ds} vi{dvhp
"nnoremap ds> vi<dvhp
"nnoremap ds" vi"dvhp
"nnoremap ds' vi'dvhp
" Surround change bindings
"nnoremap cs"' vi"oh<Esc>msvi"l<Esc>cl'<Esc>`scl'<Esc>
"nnoremap cs'" vi'oh<Esc>msvi'l<Esc>cl"<Esc>`scl"<Esc>
" Surround visual selected text
vnoremap S" c"<C-r>""<Esc>
vnoremap S' c"<C-r>"'<Esc>
vnoremap S) c(<C-r>")<Esc>
vnoremap S] c[<C-r>"]<Esc>
vnoremap S} c{<C-r>"}<Esc>
vnoremap S{ c{<C-r>"}<Esc>
vnoremap S> c<lt><C-r>"><Esc>
vnoremap S* c/*<C-r>"*/<Esc>
"vnoremap St c<lt>div><CR><C-r>"<Esc>
" Surround in div tag and edit tag
vnoremap St c<lt>div><CR><C-r>"<Esc>`<lt>lcw