diff options
Diffstat (limited to 'vim/init/keymaps.vim')
-rw-r--r-- | vim/init/keymaps.vim | 46 |
1 files changed, 34 insertions, 12 deletions
diff --git a/vim/init/keymaps.vim b/vim/init/keymaps.vim index 6978f63..f46e67b 100644 --- a/vim/init/keymaps.vim +++ b/vim/init/keymaps.vim | |||
@@ -8,23 +8,12 @@ | |||
8 | " Space for searching | 8 | " Space for searching |
9 | map <space> / | 9 | map <space> / |
10 | 10 | ||
11 | " j/k will move virtual lines (lines that wrap) | ||
12 | noremap <silent> <expr> j (v:count == 0 ? 'gj' : 'j') | ||
13 | noremap <silent> <expr> k (v:count == 0 ? 'gk' : 'k') | ||
14 | |||
15 | " Search for selected test | 11 | " Search for selected test |
16 | vnoremap * y/\V<C-R>=escape(@",'/\')<CR><CR> | 12 | vnoremap * y/\V<C-R>=escape(@",'/\')<CR><CR> |
17 | 13 | ||
18 | " set buflisted | ||
19 | noremap <leader>st :set<space> | ||
20 | |||
21 | " Disable highlight when <leader><CR> is pressed | 14 | " Disable highlight when <leader><CR> is pressed |
22 | map <silent> <leader><CR> :noh<CR> | 15 | map <silent> <leader><CR> :noh<CR> |
23 | 16 | ||
24 | " Quick move in a line | ||
25 | noremap <C-h> 30h | ||
26 | noremap <C-l> 30l | ||
27 | |||
28 | " Paste register 0 | 17 | " Paste register 0 |
29 | nnoremap <C-p> "0p | 18 | nnoremap <C-p> "0p |
30 | 19 | ||
@@ -99,7 +88,7 @@ nnoremap <leader>P :r !xsel -ob<CR> | |||
99 | vnoremap Y :w !xsel -ib<CR> | 88 | vnoremap Y :w !xsel -ib<CR> |
100 | 89 | ||
101 | " Spell | 90 | " Spell |
102 | nnoremap <leader>ts :set spell!<CR> | 91 | nnoremap <leader><leader>sp :set spell!<CR> |
103 | nnoremap <leader>ss ]s | 92 | nnoremap <leader>ss ]s |
104 | nnoremap <leader>S [s | 93 | nnoremap <leader>S [s |
105 | 94 | ||
@@ -116,12 +105,26 @@ nnoremap <leader><leader>so :source ~/.vimrc<CR> | |||
116 | vnoremap so :source<CR> | 105 | vnoremap so :source<CR> |
117 | 106 | ||
118 | " }}} | 107 | " }}} |
108 | " MOVE ----------------{{{ | ||
109 | |||
110 | " j/k will move virtual lines (lines that wrap) | ||
111 | noremap <silent> <expr> j (v:count == 0 ? 'gj' : 'j') | ||
112 | noremap <silent> <expr> k (v:count == 0 ? 'gk' : 'k') | ||
113 | |||
114 | " Quick move in a line | ||
115 | noremap <C-h> 30h | ||
116 | noremap <C-l> 30l | ||
117 | |||
118 | " }}} | ||
119 | " MANAGE_VIMRC ----------------{{{ | 119 | " MANAGE_VIMRC ----------------{{{ |
120 | |||
120 | nnoremap <leader>e :scriptnames<space> | 121 | nnoremap <leader>e :scriptnames<space> |
121 | nnoremap <leader>ee :edit $MYVIMRC<CR> | 122 | nnoremap <leader>ee :edit $MYVIMRC<CR> |
122 | autocmd! BUFWRITEPOST $MYVIMRC source $MYVIMRC | 123 | autocmd! BUFWRITEPOST $MYVIMRC source $MYVIMRC |
124 | |||
123 | " }}} | 125 | " }}} |
124 | " MOVING_WITH_READLINE ----------------{{{ | 126 | " MOVING_WITH_READLINE ----------------{{{ |
127 | |||
125 | inoremap <C-f> <Right> | 128 | inoremap <C-f> <Right> |
126 | inoremap <C-b> <Left> | 129 | inoremap <C-b> <Left> |
127 | inoremap <C-a> <C-o>0 | 130 | inoremap <C-a> <C-o>0 |
@@ -155,13 +158,16 @@ inoremap <m-j> <c-\><c-o>gj | |||
155 | inoremap <m-k> <c-\><c-o>gk | 158 | inoremap <m-k> <c-\><c-o>gk |
156 | " }}} | 159 | " }}} |
157 | " INSERT_SURROUNDING ----------------{{{ | 160 | " INSERT_SURROUNDING ----------------{{{ |
161 | |||
158 | inoremap ' ''<Left> | 162 | inoremap ' ''<Left> |
159 | inoremap " ""<Left> | 163 | inoremap " ""<Left> |
160 | inoremap ( ()<Left> | 164 | inoremap ( ()<Left> |
161 | inoremap [ []<Left> | 165 | inoremap [ []<Left> |
162 | inoremap { {}<Left> | 166 | inoremap { {}<Left> |
167 | |||
163 | " }}} | 168 | " }}} |
164 | " JUMP_TO_TABS_WITH_ALT ----------------{{{ | 169 | " JUMP_TO_TABS_WITH_ALT ----------------{{{ |
170 | |||
165 | noremap <silent><A-1> :tabn 1<CR> | 171 | noremap <silent><A-1> :tabn 1<CR> |
166 | noremap <silent><A-2> :tabn 2<CR> | 172 | noremap <silent><A-2> :tabn 2<CR> |
167 | noremap <silent><M-3> :tabn 3<CR> | 173 | noremap <silent><M-3> :tabn 3<CR> |
@@ -180,6 +186,7 @@ inoremap <silent><M-6> <Esc>:tabn 6<CR> | |||
180 | inoremap <silent><M-7> <Esc>:tabn 7<CR> | 186 | inoremap <silent><M-7> <Esc>:tabn 7<CR> |
181 | inoremap <silent><M-8> <Esc>:tabn 8<CR> | 187 | inoremap <silent><M-8> <Esc>:tabn 8<CR> |
182 | inoremap <silent><M-9> <Esc>:tablast<CR> | 188 | inoremap <silent><M-9> <Esc>:tablast<CR> |
189 | |||
183 | " }}} | 190 | " }}} |
184 | " MANAGE_TABS ----------------{{{ | 191 | " MANAGE_TABS ----------------{{{ |
185 | 192 | ||
@@ -217,6 +224,9 @@ endfunc | |||
217 | " }}} | 224 | " }}} |
218 | " MANAGE_BUFFERS ----------------{{{ | 225 | " MANAGE_BUFFERS ----------------{{{ |
219 | 226 | ||
227 | " set buflisted | ||
228 | noremap <leader>st :set<space> | ||
229 | |||
220 | " Open a new buffer | 230 | " Open a new buffer |
221 | nmap <leader><leader>b :enew<CR> | 231 | nmap <leader><leader>b :enew<CR> |
222 | nmap <leader>B :enew<CR> | 232 | nmap <leader>B :enew<CR> |
@@ -261,6 +271,7 @@ com! SwitchDiffForGitHEAD call s:SwitchDiffForGitHEAD() | |||
261 | nnoremap <C-w>D <Cmd>silent! SwitchDiffForGitHEAD<CR> | 271 | nnoremap <C-w>D <Cmd>silent! SwitchDiffForGitHEAD<CR> |
262 | " }}} | 272 | " }}} |
263 | " MANAGE_WINDOWS ----------------{{{ | 273 | " MANAGE_WINDOWS ----------------{{{ |
274 | |||
264 | nnoremap <leader><leader>sb :windo set scrollbind!<CR> | 275 | nnoremap <leader><leader>sb :windo set scrollbind!<CR> |
265 | 276 | ||
266 | " 窗口切换:ALT+SHIFT+hjkl | 277 | " 窗口切换:ALT+SHIFT+hjkl |
@@ -296,19 +307,24 @@ elseif has('nvim') | |||
296 | endif | 307 | endif |
297 | " }}} | 308 | " }}} |
298 | " FOLDING ----------------{{{ | 309 | " FOLDING ----------------{{{ |
310 | |||
299 | " Set foldmethod | 311 | " Set foldmethod |
300 | noremap <leader><leader>fm :<C-\>e'set foldmethod='..&foldmethod<CR> | 312 | noremap <leader><leader>fm :<C-\>e'set foldmethod='..&foldmethod<CR> |
301 | 313 | ||
302 | " Show fold level when it changes | 314 | " Show fold level when it changes |
303 | nnoremap zm zm:set foldlevel<CR> | 315 | nnoremap zm zm:set foldlevel<CR> |
304 | nnoremap zr zr:set foldlevel<CR> | 316 | nnoremap zr zr:set foldlevel<CR> |
317 | |||
305 | " Use l to open fold | 318 | " Use l to open fold |
306 | nnoremap <expr> l foldclosed('.') == -1 ? 'l' : 'zo' | 319 | nnoremap <expr> l foldclosed('.') == -1 ? 'l' : 'zo' |
320 | sourcesourcesource | ||
307 | " Open fold in next line | 321 | " Open fold in next line |
308 | nnoremap <expr> zo foldclosed('.') == -1 ? 'zjzo' : 'zo' | 322 | nnoremap <expr> zo foldclosed('.') == -1 ? 'zjzo' : 'zo' |
309 | nnoremap <expr> zO foldclosed('.') == -1 ? 'zjzO' : 'zO' | 323 | nnoremap <expr> zO foldclosed('.') == -1 ? 'zjzO' : 'zO' |
324 | |||
310 | " }}} | 325 | " }}} |
311 | " SURROURD_WITH_CHAR ----------------{{{ | 326 | " SURROURD_WITH_CHAR ----------------{{{ |
327 | |||
312 | vnoremap S sa | 328 | vnoremap S sa |
313 | vnoremap ' <ESC>`<i'<ESC>`>la'<ESC> | 329 | vnoremap ' <ESC>`<i'<ESC>`>la'<ESC> |
314 | vnoremap q <ESC>`<i"<ESC>`>la"<ESC> | 330 | vnoremap q <ESC>`<i"<ESC>`>la"<ESC> |
@@ -318,6 +334,7 @@ vnoremap { <ESC>`<i{<ESC>`>la}<ESC> | |||
318 | vnoremap ` <ESC>`<i`<ESC>`>la`<ESC> | 334 | vnoremap ` <ESC>`<i`<ESC>`>la`<ESC> |
319 | vnoremap <space> <ESC>`<i<space><ESC>`>la<space><ESC> | 335 | vnoremap <space> <ESC>`<i<space><ESC>`>la<space><ESC> |
320 | vnoremap Q <ESC>`<i「<ESC>`>la」<ESC> | 336 | vnoremap Q <ESC>`<i「<ESC>`>la」<ESC> |
337 | |||
321 | " }}} | 338 | " }}} |
322 | " REDIRECTION_WITH_BUFFER ----------------{{{ | 339 | " REDIRECTION_WITH_BUFFER ----------------{{{ |
323 | 340 | ||
@@ -380,12 +397,14 @@ vnoremap <CR> <Cmd>call SubstituteBySearch()<CR> | |||
380 | 397 | ||
381 | " }}} | 398 | " }}} |
382 | " GIT_TIG ----------------{{{ | 399 | " GIT_TIG ----------------{{{ |
400 | |||
383 | let g:tig_explorer_keymap_commit_split = '<C-s>' | 401 | let g:tig_explorer_keymap_commit_split = '<C-s>' |
384 | let g:tig_explorer_keymap_commit_vsplit = '<C-v>' | 402 | let g:tig_explorer_keymap_commit_vsplit = '<C-v>' |
385 | nnoremap <C-t> <Cmd>Tig<CR> | 403 | nnoremap <C-t> <Cmd>Tig<CR> |
386 | nnoremap <C-t>s <Cmd>TigStatus<CR> | 404 | nnoremap <C-t>s <Cmd>TigStatus<CR> |
387 | nnoremap <C-t>b <Cmd>TigBlame<CR> | 405 | nnoremap <C-t>b <Cmd>TigBlame<CR> |
388 | nnoremap <C-t>d :vertical TigOpenFileWithCommit <C-R>+ % 0<CR> | 406 | nnoremap <C-t>d :vertical TigOpenFileWithCommit <C-R>+ % 0<CR> |
407 | |||
389 | " }}} | 408 | " }}} |
390 | " Markdown items (temproray solution) ----------------{{{ | 409 | " Markdown items (temproray solution) ----------------{{{ |
391 | 410 | ||
@@ -401,8 +420,10 @@ nnoremap <C-t>d :vertical TigOpenFileWithCommit <C-R>+ % 0<CR> | |||
401 | nnoremap <leader>dd :r !sh -c 'LANG=en zenity --calendar --date-format="\%Y.\%m.\%d" 2>/dev/null'<CR><CR> | 420 | nnoremap <leader>dd :r !sh -c 'LANG=en zenity --calendar --date-format="\%Y.\%m.\%d" 2>/dev/null'<CR><CR> |
402 | nnoremap <leader>dD :r !sh -c 'LANG=en zenity --calendar --date-format="\%a \%b \%d" 2>/dev/null'<CR><CR> | 421 | nnoremap <leader>dD :r !sh -c 'LANG=en zenity --calendar --date-format="\%a \%b \%d" 2>/dev/null'<CR><CR> |
403 | nnoremap <leader>dt :r !date +\%H:\%m<CR>A | 422 | nnoremap <leader>dt :r !date +\%H:\%m<CR>A |
423 | |||
404 | " }}} | 424 | " }}} |
405 | " Compile ----------------{{{ | 425 | " Compile ----------------{{{ |
426 | |||
406 | " 编译运行 C/C++ 项目 | 427 | " 编译运行 C/C++ 项目 |
407 | " 详细见:http://www.skywind.me/blog/archives/2084 | 428 | " 详细见:http://www.skywind.me/blog/archives/2084 |
408 | "---------------------------------------------------------------------- | 429 | "---------------------------------------------------------------------- |
@@ -506,4 +527,5 @@ else | |||
506 | \ --include='*.js' --include='*.vim' | 527 | \ --include='*.js' --include='*.vim' |
507 | \ '<root>' <CR> | 528 | \ '<root>' <CR> |
508 | endif | 529 | endif |
530 | |||
509 | " }}} | 531 | " }}} |