diff options
Diffstat (limited to 'vim/init/keymaps.vim')
-rw-r--r-- | vim/init/keymaps.vim | 66 |
1 files changed, 41 insertions, 25 deletions
diff --git a/vim/init/keymaps.vim b/vim/init/keymaps.vim index 2475ad8..68a82a5 100644 --- a/vim/init/keymaps.vim +++ b/vim/init/keymaps.vim | |||
@@ -2,18 +2,19 @@ | |||
2 | " | 2 | " |
3 | " Only for key mapping | 3 | " Only for key mapping |
4 | " | 4 | " |
5 | " - COMMON_MAPPING | 5 | " COMMON_MAPPING |
6 | " - MANAGE_VIMRC | 6 | " MANAGE_VIMRC |
7 | " - MOVING_WITH_READLINE | 7 | " MOVING_WITH_READLINE |
8 | " - INSERT_SURROUNDING | 8 | " INSERT_SURROUNDING |
9 | " - JUMP_TO_TABS_WITH_ALT | 9 | " JUMP_TO_TABS_WITH_ALT |
10 | " - MANAGE_TABS | 10 | " MANAGE_TABS |
11 | " - MANAGE_BUFFERS | 11 | " MANAGE_BUFFERS |
12 | " - SURROURD_WITH_CHAR | 12 | " FOLDING |
13 | " - REDIRECTION_WITH_BUFFER | 13 | " SURROURD_WITH_CHAR |
14 | " - QUICK_SUBSTITUTE | 14 | " REDIRECTION_WITH_BUFFER |
15 | " - 终端支持 | 15 | " QUICK_SUBSTITUTE |
16 | " - 编译运行 | 16 | " 终端支持 |
17 | " 编译运行 | ||
17 | " | 18 | " |
18 | "====================================================================== | 19 | "====================================================================== |
19 | " vim: set ts=4 sw=4 tw=78 noet : | 20 | " vim: set ts=4 sw=4 tw=78 noet : |
@@ -54,12 +55,6 @@ nmap cq :cq<CR> | |||
54 | " Switch wrap | 55 | " Switch wrap |
55 | nmap <leader>W :set wrap!<CR> | 56 | nmap <leader>W :set wrap!<CR> |
56 | 57 | ||
57 | " Show fold level when it changes | ||
58 | nnoremap zm zm:set foldlevel<CR> | ||
59 | nnoremap zr zr:set foldlevel<CR> | ||
60 | " Use l to open fold | ||
61 | nnoremap <expr> l foldclosed('.') == -1 ? 'l' : 'zo' | ||
62 | |||
63 | " :W sudo saves the file | 58 | " :W sudo saves the file |
64 | " (useful for handling the permission-denied error) | 59 | " (useful for handling the permission-denied error) |
65 | command! W execute 'w !sudo -S tee %' <bar> edit! | 60 | command! W execute 'w !sudo -S tee %' <bar> edit! |
@@ -265,7 +260,6 @@ noremap <leader>l :exe "buffer ".g:lastbuffer<CR> | |||
265 | 260 | ||
266 | " set filetype | 261 | " set filetype |
267 | noremap <leader><leader>ft :set filetype= | 262 | noremap <leader><leader>ft :set filetype= |
268 | noremap <leader><leader>fm :set foldmethod= | ||
269 | 263 | ||
270 | " Let <leader>l toggle between this and the last accessed buffer | 264 | " Let <leader>l toggle between this and the last accessed buffer |
271 | augroup SaveLastBuffer | 265 | augroup SaveLastBuffer |
@@ -275,6 +269,23 @@ augroup END | |||
275 | 269 | ||
276 | 270 | ||
277 | "---------------------------------------------------------------------- | 271 | "---------------------------------------------------------------------- |
272 | " FOLDING | ||
273 | "---------------------------------------------------------------------- | ||
274 | |||
275 | " Set foldmethod | ||
276 | noremap <leader><leader>fm :set foldmethod= | ||
277 | |||
278 | " Show fold level when it changes | ||
279 | nnoremap zm zm:set foldlevel<CR> | ||
280 | nnoremap zr zr:set foldlevel<CR> | ||
281 | " Use l to open fold | ||
282 | nnoremap <expr> l foldclosed('.') == -1 ? 'l' : 'zo' | ||
283 | " Open fold in next line | ||
284 | nnoremap <expr> zo foldclosed('.') == -1 ? 'jzo' : 'zo' | ||
285 | nnoremap <expr> zO foldclosed('.') == -1 ? 'jzO' : 'zO' | ||
286 | |||
287 | |||
288 | "---------------------------------------------------------------------- | ||
278 | " SURROURD_WITH_CHAR | 289 | " SURROURD_WITH_CHAR |
279 | "---------------------------------------------------------------------- | 290 | "---------------------------------------------------------------------- |
280 | vnoremap S sa | 291 | vnoremap S sa |
@@ -323,26 +334,31 @@ nnoremap <leader>rr :Redir<space> | |||
323 | " Press <TAB> n times for area, and <CR> for substitute | 334 | " Press <TAB> n times for area, and <CR> for substitute |
324 | "---------------------------------------------------------------------- | 335 | "---------------------------------------------------------------------- |
325 | 336 | ||
337 | " substitute across file | ||
338 | vnoremap <leader>s y:%s//<C-R>0/g<LEFT><LEFT> | ||
339 | |||
326 | let g:search_not_in_register = 1 | 340 | let g:search_not_in_register = 1 |
341 | " When leaving visual mode, resume search_not_in_register | ||
342 | autocmd Modechanged [vV\x16]*:* let g:search_not_in_register = 1 | ||
343 | |||
327 | function! ExpandSelectionBySearch(sep) | 344 | function! ExpandSelectionBySearch(sep) |
328 | if g:search_not_in_register | 345 | if g:search_not_in_register |
329 | " Save current selection to register s, and keep selection | 346 | " Save current selection to register, and keep selection |
330 | execute 'norm "sygv' | 347 | execute 'norm ygv' |
331 | let g:search_not_in_register = 0 | 348 | let g:search_not_in_register = 0 |
332 | endif | 349 | endif |
333 | " Use register s to go to next search, counts/total is displayed in | 350 | " Use register s to go to next search, counts/total is displayed in |
334 | " statusline | 351 | " statusline |
335 | call feedkeys(a:sep.."\<C-R>s"..a:sep.."e\<CR>") | 352 | call feedkeys(a:sep.."\<C-R>0"..a:sep.."e\<CR>") |
336 | endfunction | 353 | endfunction |
337 | function! SubstituteBySearch() | 354 | function! SubstituteBySearch() |
338 | " Apply current search for default substitute text | 355 | " Apply current search for default substitute text |
339 | call feedkeys(":s//\<C-R>s/g\<Left>\<Left>") | 356 | call feedkeys(":s//\<C-R>0/g\<Left>\<Left>") |
340 | endfunction | 357 | endfunction |
358 | |||
341 | vnoremap <TAB> <Cmd>call ExpandSelectionBySearch('/')<CR> | 359 | vnoremap <TAB> <Cmd>call ExpandSelectionBySearch('/')<CR> |
342 | vnoremap <S-TAB> <Cmd>call ExpandSelectionBySearch('?')<CR> | 360 | vnoremap <S-TAB> <Cmd>call ExpandSelectionBySearch('?')<CR> |
343 | vnoremap <CR> <Cmd>call SubstituteBySearch()<CR> | 361 | vnoremap <CR> <Cmd>call SubstituteBySearch()<CR> |
344 | " When leaving visual mode, resume search_not_in_register | ||
345 | autocmd Modechanged [vV\x16]*:* let g:search_not_in_register = 1 | ||
346 | 362 | ||
347 | 363 | ||
348 | "---------------------------------------------------------------------- | 364 | "---------------------------------------------------------------------- |