diff options
| author | Hsieh Chin Fan <pham@topo.tw> | 2024-07-20 21:19:47 +0800 |
|---|---|---|
| committer | Hsieh Chin Fan <pham@topo.tw> | 2024-07-20 23:33:14 +0800 |
| commit | b827b89821a04794e6dd16ae326c6e0bef35f067 (patch) | |
| tree | fe685073181ee7820dfc1bd0b18506bd15b6fb0d | |
| parent | 16117d8500e6b00de0c1f8b27abca839b7729e76 (diff) | |
Update
| -rw-r--r-- | vim/init/keymaps.vim | 125 | ||||
| -rw-r--r-- | vim/mini.lua | 357 |
2 files changed, 305 insertions, 177 deletions
diff --git a/vim/init/keymaps.vim b/vim/init/keymaps.vim index 5639e11..1a5e88a 100644 --- a/vim/init/keymaps.vim +++ b/vim/init/keymaps.vim | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | "====================================================================== | 1 | "====================================================================== |
| 2 | " Only for key mapping | 2 | " Only for key mapping |
| 3 | "====================================================================== | 3 | "====================================================================== |
| 4 | " vim: sw=2 ts=2 foldmethod=marker foldmarker={{{,}}} | ||
| 4 | 5 | ||
| 5 | " COMMON_MAPPING ----------------{{{ | 6 | " COMMON_MAPPING ----------------{{{ |
| 6 | 7 | ||
| @@ -8,17 +9,17 @@ | |||
| 8 | map <space> / | 9 | map <space> / |
| 9 | 10 | ||
| 10 | " Escape normal mode by <C-c> | 11 | " Escape normal mode by <C-c> |
| 11 | imap <C-c> <Esc>l | 12 | inoremap <C-c> <Esc>l |
| 12 | 13 | ||
| 13 | " Search for selected test | 14 | " Search for selected test |
| 14 | vnoremap * y/\V<C-R>=escape(@",'/\')<CR><CR> | 15 | vnoremap * y/\V<C-R>=escape(@",'/\')<CR><CR> |
| 15 | " Set wrap | ||
| 16 | 16 | ||
| 17 | " Set wrap | ||
| 17 | nnoremap <leader>W :set wrap!<CR> | 18 | nnoremap <leader>W :set wrap!<CR> |
| 18 | 19 | ||
| 19 | " Fast saving | 20 | " Fast saving |
| 20 | function! s:WriteOrEnterFileName() | 21 | function! s:WriteOrEnterFileName() |
| 21 | if !empty(expand('%')) | w! | else | call feedkeys(":w ") | endif | 22 | if !empty(expand('%')) | write! | else | call feedkeys(":w ") | endif |
| 22 | endfunction | 23 | endfunction |
| 23 | nmap <leader>w :call <SID>WriteOrEnterFileName()<CR> | 24 | nmap <leader>w :call <SID>WriteOrEnterFileName()<CR> |
| 24 | 25 | ||
| @@ -38,27 +39,9 @@ augroup vimrc_CRfix | |||
| 38 | autocmd CmdwinEnter * nnoremap <buffer> <C-c> <C-c> | 39 | autocmd CmdwinEnter * nnoremap <buffer> <C-c> <C-c> |
| 39 | augroup END | 40 | augroup END |
| 40 | 41 | ||
| 41 | " Open terminal | ||
| 42 | " nnoremap <leader>, :terminal ++noclose<CR> | ||
| 43 | vnoremap <leader>, :terminal<CR> | ||
| 44 | |||
| 45 | " Paste register 0 | ||
| 46 | nnoremap <C-p> "0p | ||
| 47 | |||
| 48 | " Toggle paste mode on and off | ||
| 49 | map <leader>pp :setlocal paste!<CR> | ||
| 50 | |||
| 51 | " Copy from system clipboard | ||
| 52 | nnoremap <leader>P :r !xsel -ob<CR> | ||
| 53 | vnoremap Y "+y | ||
| 54 | |||
| 55 | " Move one line up and down | ||
| 56 | nnoremap <C-j> ddp | ||
| 57 | nnoremap <C-k> ddkP | ||
| 58 | |||
| 59 | " In case ALT key is not working | 42 | " In case ALT key is not working |
| 60 | " execute "set <M-1>=\e1" | ||
| 61 | " execute "set <M-2>=\e2" | 43 | " execute "set <M-2>=\e2" |
| 44 | " execute "set <M-1>=\e1" | ||
| 62 | " execute "set <M-3>=\e3" | 45 | " execute "set <M-3>=\e3" |
| 63 | " execute "set <M-4>=\e4" | 46 | " execute "set <M-4>=\e4" |
| 64 | " execute "set <M-5>=\e5" | 47 | " execute "set <M-5>=\e5" |
| @@ -81,8 +64,6 @@ nnoremap <leader>S [s | |||
| 81 | " Show full path by default | 64 | " Show full path by default |
| 82 | nnoremap <C-g> 1<C-g> | 65 | nnoremap <C-g> 1<C-g> |
| 83 | 66 | ||
| 84 | nnoremap S S<ESC> | ||
| 85 | |||
| 86 | " Translate by Google API | 67 | " Translate by Google API |
| 87 | vnoremap Tz :!trans -t zh-TW -b<CR> | 68 | vnoremap Tz :!trans -t zh-TW -b<CR> |
| 88 | vnoremap Te :!trans -t en-US -b<CR> | 69 | vnoremap Te :!trans -t en-US -b<CR> |
| @@ -193,6 +174,27 @@ inoremap <silent><M-9> <Esc>:tablast<CR> | |||
| 193 | " }}} | 174 | " }}} |
| 194 | 175 | ||
| 195 | " }}} | 176 | " }}} |
| 177 | " REGISTER {{{ | ||
| 178 | " Paste register 0 | ||
| 179 | nnoremap <C-p> "0p | ||
| 180 | |||
| 181 | " Toggle paste mode on and off | ||
| 182 | map <leader>pp :setlocal paste!<CR> | ||
| 183 | |||
| 184 | " Copy from system clipboard | ||
| 185 | nnoremap <leader>P :r !xsel -ob<CR> | ||
| 186 | vnoremap Y "+y | ||
| 187 | " }}} | ||
| 188 | " EDIT {{{ | ||
| 189 | |||
| 190 | " Move one line up and down | ||
| 191 | nnoremap <C-j> ddp | ||
| 192 | nnoremap <C-k> ddkP | ||
| 193 | |||
| 194 | " Clear current line | ||
| 195 | nnoremap S S<ESC> | ||
| 196 | |||
| 197 | " }}} | ||
| 196 | " MANAGE_VIMRC ----------------{{{ | 198 | " MANAGE_VIMRC ----------------{{{ |
| 197 | 199 | ||
| 198 | " source .vimrc | 200 | " source .vimrc |
| @@ -395,18 +397,22 @@ endfunc | |||
| 395 | noremap <leader><leader>fm :<C-\>e'set foldmethod='..&foldmethod<CR> | 397 | noremap <leader><leader>fm :<C-\>e'set foldmethod='..&foldmethod<CR> |
| 396 | noremap <leader><leader>fc :<C-\>e'set foldcolumn='..&foldcolumn<CR> | 398 | noremap <leader><leader>fc :<C-\>e'set foldcolumn='..&foldcolumn<CR> |
| 397 | 399 | ||
| 400 | nnoremap zi zizz | ||
| 401 | |||
| 398 | " Show fold level when it changes | 402 | " Show fold level when it changes |
| 399 | nnoremap zm zm:set foldlevel<CR> | 403 | nnoremap zm zm:set foldlevel<CR> |
| 400 | nnoremap zr zr:set foldlevel<CR> | 404 | nnoremap zr zr:set foldlevel<CR> |
| 401 | 405 | ||
| 402 | " Fold all except selection | 406 | " Fold all except selection |
| 403 | vnoremap zF :<C-u>call UnfoldSelectionOnly()<CR> | 407 | vnoremap zF :<C-u>call ToggleUnfoldSelection()<CR> |
| 404 | " Resume | 408 | " Resume |
| 405 | nnoremap zF :<C-u>call ResumeFoldmethod()<CR>zv | 409 | nnoremap zF :call ToggleUnfoldSelection()<CR>zv |
| 410 | |||
| 411 | nnoremap \z :call GrayOutOtherFolds()<CR> | ||
| 406 | 412 | ||
| 407 | " Select current fold | 413 | " Select current fold |
| 408 | xnoremap az :<C-U>silent!normal![zV]z<CR> | 414 | xnoremap az :<C-U>silent! keepjumps normal![zV]z<CR> |
| 409 | xnoremap iz :<C-U>silent!normal![zjV]zk<CR> | 415 | xnoremap iz :<C-U>silent! keepjumps normal![zjV]zk<CR> |
| 410 | 416 | ||
| 411 | " Use l to open fold | 417 | " Use l to open fold |
| 412 | nnoremap <expr> l foldclosed('.') == -1 ? 'l' : 'zo' | 418 | nnoremap <expr> l foldclosed('.') == -1 ? 'l' : 'zo' |
| @@ -415,29 +421,49 @@ nnoremap <expr> l foldclosed('.') == -1 ? 'l' : 'zo' | |||
| 415 | nnoremap <expr> zo foldclosed('.') == -1 ? 'zjzo' : 'zo' | 421 | nnoremap <expr> zo foldclosed('.') == -1 ? 'zjzo' : 'zo' |
| 416 | nnoremap <expr> zO foldclosed('.') == -1 ? 'zjzO' : 'zO' | 422 | nnoremap <expr> zO foldclosed('.') == -1 ? 'zjzO' : 'zO' |
| 417 | 423 | ||
| 424 | " Go to next fold and unfold | ||
| 418 | nnoremap zJ zjzx | 425 | nnoremap zJ zjzx |
| 419 | nnoremap zK zkzx | 426 | nnoremap zK zkzx |
| 420 | 427 | ||
| 421 | " Fold file except selection | 428 | " Fold file except selection |
| 422 | let b:original_foldmethod = "" | 429 | autocmd BufEnter * let b:unfold_selection = 0 |
| 423 | function! UnfoldSelectionOnly() | 430 | function! ToggleUnfoldSelection() |
| 424 | echo 'Unfold'..&foldmethod | 431 | if !b:unfold_selection |
| 425 | let b:original_foldmethod = &foldmethod | 432 | let b:unfold_selection = 1 |
| 426 | let &foldmethod = "manual" | 433 | mkview |
| 427 | norm! zE | 434 | echo 'Unfold'..&foldmethod |
| 428 | execute "0,'<-1fold" | 435 | |
| 429 | execute "'>+1,$fold" | 436 | let &foldmethod = "manual" |
| 437 | norm! zE | ||
| 438 | execute "0,'<-1fold" | ||
| 439 | execute "'>+1,$fold" | ||
| 440 | else | ||
| 441 | let b:unfold_selection = 0 | ||
| 442 | loadview | ||
| 443 | endif | ||
| 444 | endfunction | ||
| 445 | |||
| 446 | autocmd BufEnter * let b:clear_matches = 0 | ||
| 447 | function! GrayOutOtherFolds() | ||
| 448 | if b:clear_matches | ||
| 449 | let b:clear_matches = 0 | ||
| 450 | call clearmatches() | ||
| 451 | else | ||
| 452 | let b:clear_matches = 1 | ||
| 453 | let pos = getpos('.') | ||
| 454 | exe "norm! [zV]z\<C-c>" | ||
| 455 | call matchadd('Folded', '\%<'.line("'<").'l') | ||
| 456 | call matchadd('Folded', '\%>'.line("'>").'l') | ||
| 457 | norm! zR | ||
| 458 | call setpos('.', pos) | ||
| 459 | endif | ||
| 430 | endfunction | 460 | endfunction |
| 431 | function! ResumeFoldmethod() | ||
| 432 | norm! zE | ||
| 433 | let &foldmethod = empty(b:original_foldmethod) ? "indent" : b:original_foldmethod | ||
| 434 | endfunc | ||
| 435 | 461 | ||
| 436 | " }}} | 462 | " }}} |
| 437 | " HIGHLIGHT ----------------{{{ | 463 | " HIGHLIGHT ----------------{{{ |
| 438 | 464 | ||
| 439 | " Disable highlight when <leader><CR> is pressed | 465 | " Disable highlight when <leader><CR> is pressed |
| 440 | map <silent> <leader><CR> :noh<CR> | 466 | noremap <silent> <leader><CR> :noh<CR> |
| 441 | 467 | ||
| 442 | function! HiFile() | 468 | function! HiFile() |
| 443 | let i = 1 | 469 | let i = 1 |
| @@ -454,7 +480,7 @@ endfunction | |||
| 454 | function! GetHighlightGroupName() | 480 | function! GetHighlightGroupName() |
| 455 | let l:syntaxID = synID(line('.'), col('.'), 1) | 481 | let l:syntaxID = synID(line('.'), col('.'), 1) |
| 456 | let l:groupName = synIDattr(l:syntaxID, 'name') | 482 | let l:groupName = synIDattr(l:syntaxID, 'name') |
| 457 | echo "Highlight Group Name: " . l:groupName | 483 | echo l:groupName |
| 458 | endfunction | 484 | endfunction |
| 459 | nnoremap <leader>H :call GetHighlightGroupName()<CR> | 485 | nnoremap <leader>H :call GetHighlightGroupName()<CR> |
| 460 | 486 | ||
| @@ -485,9 +511,12 @@ vnoremap ` <ESC>`<i`<ESC>`>la`<ESC> | |||
| 485 | vnoremap Q <ESC>`<i「<ESC>`>la」<ESC> | 511 | vnoremap Q <ESC>`<i「<ESC>`>la」<ESC> |
| 486 | 512 | ||
| 487 | function! AddSpaceForSelection() | 513 | function! AddSpaceForSelection() |
| 514 | " If visual selection by lines, add empty space at top and bottom | ||
| 488 | if line("'<") != line("'>") || (col("'<") == 1 && col("'>") == len(getline('.'))+1) | 515 | if line("'<") != line("'>") || (col("'<") == 1 && col("'>") == len(getline('.'))+1) |
| 489 | '< norm! O | 516 | '< norm! O | |
| 490 | '> norm! o | 517 | '> norm! o |
| 518 | exe "norm! "..(line("'<")-1).."GV"..(line("'>")+1).."G" | ||
| 519 | " Otherwise, add space at start and end column | ||
| 491 | else | 520 | else |
| 492 | call cursor('.', col("'<")) | 521 | call cursor('.', col("'<")) |
| 493 | execute "norm! i\<space>" | 522 | execute "norm! i\<space>" |
| @@ -543,7 +572,7 @@ autocmd Modechanged [vV\x16]*:* let g:search_not_in_register = 1 | |||
| 543 | function! ExpandSelectionBySearch(sep) | 572 | function! ExpandSelectionBySearch(sep) |
| 544 | if g:search_not_in_register | 573 | if g:search_not_in_register |
| 545 | " Save current selection to register, and keep selection | 574 | " Save current selection to register, and keep selection |
| 546 | execute 'norm ygv' | 575 | norm! ygv |
| 547 | let g:search_not_in_register = 0 | 576 | let g:search_not_in_register = 0 |
| 548 | endif | 577 | endif |
| 549 | " Use register s to go to next search, counts/total is displayed in | 578 | " Use register s to go to next search, counts/total is displayed in |
| @@ -565,7 +594,7 @@ vnoremap <CR> <Cmd>call SubstituteBySearch()<CR> | |||
| 565 | nnoremap <leader>si :exe ":sign place " .. line('.') .. " line=" .. line('.') .. " name=piet file=" .. expand("%:p")<CR> | 594 | nnoremap <leader>si :exe ":sign place " .. line('.') .. " line=" .. line('.') .. " name=piet file=" .. expand("%:p")<CR> |
| 566 | nnoremap <leader>sI :exe ":sign unplace * file=" .. expand("%:p")<CR> | 595 | nnoremap <leader>sI :exe ":sign unplace * file=" .. expand("%:p")<CR> |
| 567 | 596 | ||
| 568 | " }} | 597 | " }}} |
| 569 | " GIT_TIG ----------------{{{ | 598 | " GIT_TIG ----------------{{{ |
| 570 | 599 | ||
| 571 | let g:tig_explorer_keymap_commit_split = '<C-s>' | 600 | let g:tig_explorer_keymap_commit_split = '<C-s>' |
| @@ -575,7 +604,7 @@ nnoremap <C-t>s <Cmd>TigStatus<CR> | |||
| 575 | nnoremap <C-t>b <Cmd>TigBlame<CR> | 604 | nnoremap <C-t>b <Cmd>TigBlame<CR> |
| 576 | 605 | ||
| 577 | " }}} | 606 | " }}} |
| 578 | " Markdown items (temproray solution) ----------------{{{ | 607 | " Tmp: Markdown items (temproray solution) ----------------{{{ |
| 579 | 608 | ||
| 580 | " Toggle list item in markdown: "- [ ] XXX" -> "XXX" -> "- XXX" -> "- [ ] XXX" | 609 | " Toggle list item in markdown: "- [ ] XXX" -> "XXX" -> "- XXX" -> "- [ ] XXX" |
| 581 | " autocmd FileType markdown nnoremap <buffer> <leader>i V:!sed -E '/^ *- \[.\]/ { s/^( *)- \[.\] */\1/; q; }; /^ *[^[:space:]-]/ { s/^( *)/\1- /; q; }; /^ *- / { s/^( *)- /\1- [ ] /; q; }'<CR><CR> | 610 | " autocmd FileType markdown nnoremap <buffer> <leader>i V:!sed -E '/^ *- \[.\]/ { s/^( *)- \[.\] */\1/; q; }; /^ *[^[:space:]-]/ { s/^( *)/\1- /; q; }; /^ *- / { s/^( *)- /\1- [ ] /; q; }'<CR><CR> |
| @@ -584,14 +613,14 @@ nnoremap <C-t>b <Cmd>TigBlame<CR> | |||
| 584 | " Toggle task status: "- [ ] " -> "- [x]" -> "- [.] " -> "- [ ] " | 613 | " Toggle task status: "- [ ] " -> "- [x]" -> "- [.] " -> "- [ ] " |
| 585 | " nnoremap <leader>x V:!sed -E '/^ *- \[ \]/ { s/^( *)- \[ \]/\1- [x]/; q; }; /^ *- \[\x\]/ { s/^( *)- \[\x\]/\1- [.]/; q; }; /^ *- \[\.\]/ { s/^( *)- \[\.\]/\1- [ ]/; q; }'<CR><CR> | 614 | " nnoremap <leader>x V:!sed -E '/^ *- \[ \]/ { s/^( *)- \[ \]/\1- [x]/; q; }; /^ *- \[\x\]/ { s/^( *)- \[\x\]/\1- [.]/; q; }; /^ *- \[\.\]/ { s/^( *)- \[\.\]/\1- [ ]/; q; }'<CR><CR> |
| 586 | " }}} | 615 | " }}} |
| 587 | " Common system command ----------------{{{ | 616 | " Tmp: Common system command ----------------{{{ |
| 588 | " Show date selector | 617 | " Show date selector |
| 589 | nnoremap <leader>dd :r !sh -c 'LANG=en zenity --calendar --date-format="\%Y.\%m.\%d" 2>/dev/null'<CR><CR> | 618 | nnoremap <leader>dd :r !sh -c 'LANG=en zenity --calendar --date-format="\%Y.\%m.\%d" 2>/dev/null'<CR><CR> |
| 590 | nnoremap <leader>dD :r !sh -c 'LANG=en zenity --calendar --date-format="\%a \%b \%d" 2>/dev/null'<CR><CR> | 619 | nnoremap <leader>dD :r !sh -c 'LANG=en zenity --calendar --date-format="\%a \%b \%d" 2>/dev/null'<CR><CR> |
| 591 | nnoremap <leader>dt :r !date +\%H:\%m<CR>A | 620 | nnoremap <leader>dt :r !date +\%H:\%m<CR>A |
| 592 | 621 | ||
| 593 | " }}} | 622 | " }}} |
| 594 | " Compile ----------------{{{ | 623 | " Tmp: Compile ----------------{{{ |
| 595 | 624 | ||
| 596 | " 编译运行 C/C++ 项目 | 625 | " 编译运行 C/C++ 项目 |
| 597 | " 详细见:http://www.skywind.me/blog/archives/2084 | 626 | " 详细见:http://www.skywind.me/blog/archives/2084 |
diff --git a/vim/mini.lua b/vim/mini.lua index d87c01c..b09dc88 100644 --- a/vim/mini.lua +++ b/vim/mini.lua | |||
| @@ -29,14 +29,6 @@ require('mini.deps').setup({ | |||
| 29 | }) | 29 | }) |
| 30 | add, now, later = MiniDeps.add, MiniDeps.now, MiniDeps.later | 30 | add, now, later = MiniDeps.add, MiniDeps.now, MiniDeps.later |
| 31 | -- }}} | 31 | -- }}} |
| 32 | -- Disabled: mini.bufremote {{{ | ||
| 33 | add('echasnovski/mini.bufremove') | ||
| 34 | vim.g.bufremove_disable = true | ||
| 35 | --}}} | ||
| 36 | -- Disabled: mini.animate --{{{ | ||
| 37 | add('echasnovski/mini.animate') | ||
| 38 | vim.g.animate_disable = true | ||
| 39 | -- }}} | ||
| 40 | -- mini.basics {{{ | 32 | -- mini.basics {{{ |
| 41 | require('mini.basics').setup() | 33 | require('mini.basics').setup() |
| 42 | -- }}} | 34 | -- }}} |
| @@ -49,7 +41,7 @@ require('mini.extra').setup() | |||
| 49 | -- }}} | 41 | -- }}} |
| 50 | -- mini.colors {{{ | 42 | -- mini.colors {{{ |
| 51 | require('mini.colors').setup() | 43 | require('mini.colors').setup() |
| 52 | vim.keymap.set( 'n', '<leader>co', function() require('mini.colors').interactive() end) | 44 | vim.keymap.set( 'n', '<leader><leader>co', function() require('mini.colors').interactive() end) |
| 53 | -- }}} | 45 | -- }}} |
| 54 | -- mini.base16 {{{ | 46 | -- mini.base16 {{{ |
| 55 | require('mini.base16').setup({ | 47 | require('mini.base16').setup({ |
| @@ -75,7 +67,7 @@ require('mini.base16').setup({ | |||
| 75 | -- Integers, Boolean, Constants, XML Attributes, Markup Link Url | 67 | -- Integers, Boolean, Constants, XML Attributes, Markup Link Url |
| 76 | base09 = "#ef9062", | 68 | base09 = "#ef9062", |
| 77 | -- Classes, Markup Bold, Search Text Background | 69 | -- Classes, Markup Bold, Search Text Background |
| 78 | base0A = "#a6e22e", | 70 | base0A = "#efca84", |
| 79 | -- Strings, Inherited Class, Markup Code, Diff Inserted | 71 | -- Strings, Inherited Class, Markup Code, Diff Inserted |
| 80 | base0B = "#e5c463", | 72 | base0B = "#e5c463", |
| 81 | -- Support, Regular Expressions, Escape Characters, Markup Quotes | 73 | -- Support, Regular Expressions, Escape Characters, Markup Quotes |
| @@ -88,7 +80,9 @@ require('mini.base16').setup({ | |||
| 88 | base0F = "#f9f8f5", | 80 | base0F = "#f9f8f5", |
| 89 | }, | 81 | }, |
| 90 | use_cterm = true, | 82 | use_cterm = true, |
| 91 | }) --}}} | 83 | }) |
| 84 | |||
| 85 | --}}} | ||
| 92 | -- mini.icons {{{ | 86 | -- mini.icons {{{ |
| 93 | require('mini.icons').setup({ | 87 | require('mini.icons').setup({ |
| 94 | }) --}}} | 88 | }) --}}} |
| @@ -98,7 +92,7 @@ require('mini.tabline').setup {} | |||
| 98 | 92 | ||
| 99 | for i = 1, 9, 1 do | 93 | for i = 1, 9, 1 do |
| 100 | vim.keymap.set("n", string.format("<A-%s>", i), function() | 94 | vim.keymap.set("n", string.format("<A-%s>", i), function() |
| 101 | vim.api.nvim_set_current_buf( vim.fn.getbufinfo({ buflisted=true })[i].bufnr) | 95 | vim.api.nvim_set_current_buf(vim.fn.getbufinfo({ buflisted=true })[i].bufnr) |
| 102 | end, {silent = true}) | 96 | end, {silent = true}) |
| 103 | end | 97 | end |
| 104 | 98 | ||
| @@ -147,51 +141,6 @@ function status_config() | |||
| 147 | end | 141 | end |
| 148 | 142 | ||
| 149 | -- }}} | 143 | -- }}} |
| 150 | -- Disabled: mini.clue {{{ | ||
| 151 | -- local miniclue = require('mini.clue') | ||
| 152 | -- miniclue.setup({ | ||
| 153 | -- triggers = { | ||
| 154 | -- -- Leader triggers | ||
| 155 | -- { mode = 'n', keys = '<Leader>' }, | ||
| 156 | -- { mode = 'x', keys = '<Leader>' }, | ||
| 157 | -- | ||
| 158 | -- -- Built-in completion | ||
| 159 | -- { mode = 'i', keys = '<C-x>' }, | ||
| 160 | -- | ||
| 161 | -- -- `g` key | ||
| 162 | -- { mode = 'n', keys = 'g' }, | ||
| 163 | -- { mode = 'x', keys = 'g' }, | ||
| 164 | -- | ||
| 165 | -- -- Marks | ||
| 166 | -- { mode = 'n', keys = "'" }, | ||
| 167 | -- { mode = 'n', keys = '`' }, | ||
| 168 | -- { mode = 'x', keys = "'" }, | ||
| 169 | -- { mode = 'x', keys = '`' }, | ||
| 170 | -- | ||
| 171 | -- -- Registers | ||
| 172 | -- { mode = 'n', keys = '"' }, | ||
| 173 | -- { mode = 'x', keys = '"' }, | ||
| 174 | -- { mode = 'i', keys = '<C-r>' }, | ||
| 175 | -- { mode = 'c', keys = '<C-r>' }, | ||
| 176 | -- | ||
| 177 | -- -- Window commands | ||
| 178 | -- { mode = 'n', keys = '<C-w>' }, | ||
| 179 | -- | ||
| 180 | -- -- `z` key | ||
| 181 | -- { mode = 'n', keys = 'z' }, | ||
| 182 | -- { mode = 'x', keys = 'z' }, | ||
| 183 | -- }, | ||
| 184 | -- | ||
| 185 | -- clues = { | ||
| 186 | -- -- Enhance this by adding descriptions for <Leader> mapping groups | ||
| 187 | -- miniclue.gen_clues.builtin_completion(), | ||
| 188 | -- miniclue.gen_clues.g(), | ||
| 189 | -- miniclue.gen_clues.marks(), | ||
| 190 | -- miniclue.gen_clues.registers(), | ||
| 191 | -- miniclue.gen_clues.windows(), | ||
| 192 | -- miniclue.gen_clues.z(), | ||
| 193 | -- }, | ||
| 194 | -- }}} | ||
| 195 | -- mini.comment {{{ | 144 | -- mini.comment {{{ |
| 196 | require('mini.comment').setup({ | 145 | require('mini.comment').setup({ |
| 197 | -- Module mappings. Use `''` (empty string) to disable one. | 146 | -- Module mappings. Use `''` (empty string) to disable one. |
| @@ -232,7 +181,7 @@ require('mini.diff').setup({ | |||
| 232 | -- }}} | 181 | -- }}} |
| 233 | -- mini.map {{{ | 182 | -- mini.map {{{ |
| 234 | require('mini.map').setup() | 183 | require('mini.map').setup() |
| 235 | vim.keymap.set( 'n', '<leader><leader>mp', function() require('mini.map').toggle() end, { buffer = bufnr, desc = '' }) | 184 | vim.keymap.set( 'n', '\\m', function() require('mini.map').toggle() end, { buffer = bufnr, desc = '' }) |
| 236 | -- }}} | 185 | -- }}} |
| 237 | -- mini.visits {{{ | 186 | -- mini.visits {{{ |
| 238 | require('mini.visits').setup() | 187 | require('mini.visits').setup() |
| @@ -261,10 +210,8 @@ require('mini.splitjoin').setup() | |||
| 261 | -- mini.move {{{ | 210 | -- mini.move {{{ |
| 262 | require('mini.move').setup() | 211 | require('mini.move').setup() |
| 263 | -- }}} | 212 | -- }}} |
| 264 | -- mini.pairs {{{ | ||
| 265 | require('mini.pairs').setup() | ||
| 266 | -- }}} | ||
| 267 | -- mini.hipatterns {{{ | 213 | -- mini.hipatterns {{{ |
| 214 | |||
| 268 | local hipatterns = require('mini.hipatterns') | 215 | local hipatterns = require('mini.hipatterns') |
| 269 | hipatterns.setup({ | 216 | hipatterns.setup({ |
| 270 | highlighters = { | 217 | highlighters = { |
| @@ -278,11 +225,64 @@ hipatterns.setup({ | |||
| 278 | hex_color = hipatterns.gen_highlighter.hex_color(), | 225 | hex_color = hipatterns.gen_highlighter.hex_color(), |
| 279 | }, | 226 | }, |
| 280 | }) | 227 | }) |
| 281 | vim.keymap.set( 'n', '<leader><leader>hi', function() | 228 | vim.keymap.set( 'n', '<leader><leader>hi', function()MiniHipatterns.toggle() end, { buffer = bufnr, desc = 'Toggle hex color highlight' }) |
| 282 | MiniHipatterns.toggle() | 229 | |
| 283 | end, | 230 | -- }}} |
| 284 | { buffer = bufnr, desc = 'Toggle hex color highlight' } | 231 | -- mini.pairs {{{ |
| 285 | ) | 232 | require('mini.pairs').setup() |
| 233 | -- }}} | ||
| 234 | -- -- mini.clue {{{ | ||
| 235 | -- local miniclue = require('mini.clue') | ||
| 236 | -- miniclue.setup({ | ||
| 237 | -- triggers = { | ||
| 238 | -- -- Leader triggers | ||
| 239 | -- { mode = 'n', keys = '<Leader>' }, | ||
| 240 | -- { mode = 'x', keys = '<Leader>' }, | ||
| 241 | -- | ||
| 242 | -- -- Built-in completion | ||
| 243 | -- { mode = 'i', keys = '<C-x>' }, | ||
| 244 | -- | ||
| 245 | -- -- `g` key | ||
| 246 | -- { mode = 'n', keys = 'g' }, | ||
| 247 | -- { mode = 'x', keys = 'g' }, | ||
| 248 | -- | ||
| 249 | -- -- Marks | ||
| 250 | -- { mode = 'n', keys = "'" }, | ||
| 251 | -- { mode = 'n', keys = '`' }, | ||
| 252 | -- { mode = 'x', keys = "'" }, | ||
| 253 | -- { mode = 'x', keys = '`' }, | ||
| 254 | -- | ||
| 255 | -- -- Registers | ||
| 256 | -- { mode = 'n', keys = '"' }, | ||
| 257 | -- { mode = 'x', keys = '"' }, | ||
| 258 | -- { mode = 'i', keys = '<C-r>' }, | ||
| 259 | -- { mode = 'c', keys = '<C-r>' }, | ||
| 260 | -- | ||
| 261 | -- -- Window commands | ||
| 262 | -- { mode = 'n', keys = '<C-w>' }, | ||
| 263 | -- | ||
| 264 | -- -- `z` key | ||
| 265 | -- { mode = 'n', keys = 'z' }, | ||
| 266 | -- { mode = 'x', keys = 'z' }, | ||
| 267 | -- }, | ||
| 268 | -- | ||
| 269 | -- clues = { | ||
| 270 | -- -- Enhance this by adding descriptions for <Leader> mapping groups | ||
| 271 | -- miniclue.gen_clues.builtin_completion(), | ||
| 272 | -- miniclue.gen_clues.g(), | ||
| 273 | -- miniclue.gen_clues.marks(), | ||
| 274 | -- miniclue.gen_clues.registers(), | ||
| 275 | -- miniclue.gen_clues.windows(), | ||
| 276 | -- miniclue.gen_clues.z(), | ||
| 277 | -- }, | ||
| 278 | -- -- }}} | ||
| 279 | -- -- mini.bufremote {{{ | ||
| 280 | add('echasnovski/mini.bufremove') | ||
| 281 | vim.g.bufremove_disable = true | ||
| 282 | --}}} | ||
| 283 | -- -- mini.animate --{{{ | ||
| 284 | add('echasnovski/mini.animate') | ||
| 285 | vim.g.animate_disable = true | ||
| 286 | -- }}} | 286 | -- }}} |
| 287 | -- Telescope {{{ | 287 | -- Telescope {{{ |
| 288 | add({ | 288 | add({ |
| @@ -292,81 +292,85 @@ add({ | |||
| 292 | }, | 292 | }, |
| 293 | hooks = { post_checkout = function() end }, | 293 | hooks = { post_checkout = function() end }, |
| 294 | }) | 294 | }) |
| 295 | -- add({ | ||
| 296 | -- source = 'nvim-telescope/telescope-fzf-native.nvim', | ||
| 297 | -- hooks = { post_checkout = function() | ||
| 298 | -- vim.fn.system('make') | ||
| 299 | -- end }, | ||
| 300 | -- }) | ||
| 301 | -- config {{{ | 295 | -- config {{{ |
| 302 | require('telescope').setup({ | 296 | require('telescope').setup({ |
| 303 | defaults = {-- {{{ | 297 | defaults = { |
| 304 | mappings = { | 298 | mappings = { |
| 305 | i = { | 299 | i = { |
| 306 | -- ["<c-j>"] = "move_selection_next", | 300 | -- ["<c-j>"] = "move_selection_next", |
| 307 | -- ["<c-k>"] = "move_selection_previous", | 301 | -- ["<c-k>"] = "move_selection_previous", |
| 308 | ["<C-o>"] = require("telescope.actions.layout").toggle_preview, | 302 | ["<C-o>"] = require("telescope.actions.layout").toggle_preview, |
| 309 | ["<C-u>"] = false, | 303 | ["<C-u>"] = false, |
| 310 | ["<C-q>"] = function(p_bufnr) | 304 | ["<C-q>"] = function(p_bufnr) |
| 311 | require("telescope.actions").send_selected_to_qflist(p_bufnr) | 305 | require("telescope.actions").send_selected_to_qflist(p_bufnr) |
| 312 | vim.cmd.cfdo("edit") | 306 | vim.cmd.cfdo("edit") |
| 313 | end, | 307 | end, |
| 308 | }, | ||
| 314 | }, | 309 | }, |
| 315 | }, | 310 | layout_config = { |
| 316 | layout_config = { | 311 | horizontal = { |
| 317 | horizontal = { | 312 | prompt_position = "bottom", |
| 318 | prompt_position = "bottom", | 313 | }, |
| 314 | vertical = { height = 0.8 }, | ||
| 315 | -- other layout configuration here | ||
| 316 | preview_cutoff = 0, | ||
| 319 | }, | 317 | }, |
| 320 | vertical = { height = 0.8 }, | 318 | file_ignore_patterns = { |
| 321 | -- other layout configuration here | 319 | "node_modules" |
| 322 | preview_cutoff = 0, | ||
| 323 | }, | ||
| 324 | file_ignore_patterns = { | ||
| 325 | "node_modules" | ||
| 326 | }, | ||
| 327 | },-- }}} | ||
| 328 | pickers = {-- {{{ | ||
| 329 | buffers = { | ||
| 330 | show_all_buffers = true, | ||
| 331 | sort_lastused = true, | ||
| 332 | theme = "dropdown", | ||
| 333 | previewer = false, | ||
| 334 | mappings = { | ||
| 335 | i = { | ||
| 336 | ["<c-d>"] = "delete_buffer", | ||
| 337 | }, | 320 | }, |
| 338 | n = { | ||
| 339 | ["<c-d>"] = "delete_buffer", | ||
| 340 | } | ||
| 341 | }, | 321 | }, |
| 342 | }, | 322 | pickers = { |
| 343 | },-- }}} | 323 | buffers = { |
| 344 | extensions = { | 324 | show_all_buffers = true, |
| 345 | fzf = { | 325 | sort_lastused = true, |
| 346 | fuzzy = true, -- false will only do exact matching | 326 | theme = "dropdown", |
| 347 | override_generic_sorter = true, -- override the generic sorter | 327 | previewer = false, |
| 348 | override_file_sorter = true, -- override the file sorter | 328 | mappings = { |
| 349 | case_mode = "smart_case", -- or "ignore_case" or "respect_case" | 329 | i = { |
| 350 | -- the default case_mode is "smart_case" | 330 | ["<c-d>"] = "delete_buffer", |
| 331 | }, | ||
| 332 | n = { | ||
| 333 | ["<c-d>"] = "delete_buffer", | ||
| 334 | } | ||
| 335 | }, | ||
| 336 | }, | ||
| 351 | }, | 337 | }, |
| 352 | aerial = { | 338 | extensions = { |
| 353 | -- Display symbols as <root>.<parent>.<symbol> | 339 | fzf = { |
| 354 | show_nesting = { | 340 | fuzzy = true, -- false will only do exact matching |
| 355 | ["_"] = false, -- This key will be the default | 341 | override_generic_sorter = true, -- override the generic sorter |
| 356 | json = true, -- You can set the option for specific filetypes | 342 | override_file_sorter = true, -- override the file sorter |
| 357 | yaml = true, | 343 | case_mode = "smart_case", -- or "ignore_case" or "respect_case" |
| 344 | -- the default case_mode is "smart_case" | ||
| 345 | }, | ||
| 346 | aerial = { | ||
| 347 | -- Display symbols as <root>.<parent>.<symbol> | ||
| 348 | show_nesting = { | ||
| 349 | ["_"] = false, -- This key will be the default | ||
| 350 | json = true, -- You can set the option for specific filetypes | ||
| 351 | yaml = true, | ||
| 352 | }, | ||
| 358 | }, | 353 | }, |
| 359 | }, | 354 | }, |
| 360 | }, | ||
| 361 | }) | 355 | }) |
| 362 | -- }}} | 356 | -- }}} |
| 363 | -- require("telescope").load_extension("fzf") | 357 | -- extensions {{{ |
| 358 | add({ | ||
| 359 | source = 'nvim-telescope/telescope-fzf-native.nvim', | ||
| 360 | hooks = { | ||
| 361 | post_install = function(config) | ||
| 362 | vim.cmd("make -C " .. config.path) | ||
| 363 | end | ||
| 364 | }, | ||
| 365 | }) | ||
| 366 | require("telescope").load_extension("fzf") | ||
| 364 | -- require("telescope").load_extension("aerial") | 367 | -- require("telescope").load_extension("aerial") |
| 368 | -- }}} | ||
| 365 | 369 | ||
| 366 | -- Keymaps {{{ | 370 | -- Keymaps {{{ |
| 367 | vim.keymap.set("n", "<leader>f", "<cmd>Telescope oldfiles<CR>", { desc = "telescope find oldfiles" }) | 371 | vim.keymap.set("n", "<leader>f", "<cmd>Telescope oldfiles<CR>", { desc = "telescope find oldfiles" }) |
| 368 | vim.keymap.set("n", "<leader>b", "<cmd>Telescope buffers<CR>", { desc = "telescope find buffers" }) | 372 | vim.keymap.set("n", "<leader>b", "<cmd>Telescope buffers<CR>", { desc = "telescope find buffers" }) |
| 369 | vim.keymap.set("n", "//", "<cmd>Telescope current_buffer_fuzzy_find<CR>", { desc = "telescope find in current buffer" }) | 373 | vim.keymap.set("n", "<leader>/", "<cmd>Telescope current_buffer_fuzzy_find<CR>", { desc = "telescope find in current buffer" }) |
| 370 | vim.keymap.set("n", "<leader>sf", "<cmd>Telescope find_files<cr>", { desc = "telescope find files" }) | 374 | vim.keymap.set("n", "<leader>sf", "<cmd>Telescope find_files<cr>", { desc = "telescope find files" }) |
| 371 | vim.keymap.set( | 375 | vim.keymap.set( |
| 372 | "n", | 376 | "n", |
| @@ -457,12 +461,12 @@ end, { desc = "Search Directory" })-- }}} | |||
| 457 | -- toggleterm {{{ | 461 | -- toggleterm {{{ |
| 458 | 462 | ||
| 459 | add({ | 463 | add({ |
| 460 | source = "akinsho/toggleterm.nvim", | 464 | source = "akinsho/toggleterm.nvim", |
| 461 | hooks = { post_checkout = function() end }, | 465 | hooks = { post_checkout = function() end }, |
| 462 | }) | 466 | }) |
| 463 | require("toggleterm").setup{ | 467 | require("toggleterm").setup{ |
| 464 | persist_size = false, | 468 | persist_size = false, |
| 465 | direction = 'float', | 469 | direction = 'float', |
| 466 | } | 470 | } |
| 467 | 471 | ||
| 468 | vim.keymap.set({ "n", "t" }, "<A-i>", function() vim.cmd("ToggleTerm direction=float") end, { desc = "terminal toggle floating term" }) | 472 | vim.keymap.set({ "n", "t" }, "<A-i>", function() vim.cmd("ToggleTerm direction=float") end, { desc = "terminal toggle floating term" }) |
| @@ -476,6 +480,7 @@ add({ | |||
| 476 | depends = { "rbgrouleff/bclose.vim" }, | 480 | depends = { "rbgrouleff/bclose.vim" }, |
| 477 | hooks = { post_checkout = function() end }, | 481 | hooks = { post_checkout = function() end }, |
| 478 | }) | 482 | }) |
| 483 | vim.cmd('nunmap <leader>bd') | ||
| 479 | 484 | ||
| 480 | --}}} | 485 | --}}} |
| 481 | -- Disabled: suda {{{ | 486 | -- Disabled: suda {{{ |
| @@ -515,3 +520,97 @@ add { | |||
| 515 | } | 520 | } |
| 516 | vim.keymap.set("n", "<leader>z", ":TZAtaraxis<CR>") | 521 | vim.keymap.set("n", "<leader>z", ":TZAtaraxis<CR>") |
| 517 | -- }}} | 522 | -- }}} |
| 523 | -- nvim-tree {{{ | ||
| 524 | add { | ||
| 525 | source = "nvim-tree/nvim-tree.lua", | ||
| 526 | } | ||
| 527 | -- config {{{ | ||
| 528 | require("nvim-tree").setup { | ||
| 529 | filters = { | ||
| 530 | dotfiles = false, | ||
| 531 | }, | ||
| 532 | disable_netrw = true, | ||
| 533 | hijack_netrw = true, | ||
| 534 | hijack_cursor = true, | ||
| 535 | hijack_unnamed_buffer_when_opening = false, | ||
| 536 | sync_root_with_cwd = true, | ||
| 537 | update_focused_file = { | ||
| 538 | enable = true, | ||
| 539 | update_root = false, | ||
| 540 | }, | ||
| 541 | view = { | ||
| 542 | adaptive_size = false, | ||
| 543 | side = "left", | ||
| 544 | width = 30, | ||
| 545 | preserve_window_proportions = true, | ||
| 546 | }, | ||
| 547 | git = { | ||
| 548 | enable = true, | ||
| 549 | ignore = true, | ||
| 550 | }, | ||
| 551 | filesystem_watchers = { | ||
| 552 | enable = true, | ||
| 553 | }, | ||
| 554 | actions = { | ||
| 555 | open_file = { | ||
| 556 | resize_window = true, | ||
| 557 | }, | ||
| 558 | }, | ||
| 559 | renderer = { | ||
| 560 | root_folder_label = false, | ||
| 561 | highlight_git = true, | ||
| 562 | highlight_opened_files = "none", | ||
| 563 | |||
| 564 | indent_markers = { | ||
| 565 | enable = true, | ||
| 566 | }, | ||
| 567 | |||
| 568 | icons = { | ||
| 569 | show = { | ||
| 570 | file = true, | ||
| 571 | folder = true, | ||
| 572 | folder_arrow = true, | ||
| 573 | git = true, | ||
| 574 | }, | ||
| 575 | |||
| 576 | glyphs = { | ||
| 577 | default = "", | ||
| 578 | symlink = "", | ||
| 579 | folder = { | ||
| 580 | default = "", | ||
| 581 | empty = "", | ||
| 582 | empty_open = "", | ||
| 583 | open = "", | ||
| 584 | symlink = "", | ||
| 585 | symlink_open = "", | ||
| 586 | arrow_open = "", | ||
| 587 | arrow_closed = "", | ||
| 588 | }, | ||
| 589 | git = { | ||
| 590 | unstaged = "✗", | ||
| 591 | staged = "✓", | ||
| 592 | unmerged = "", | ||
| 593 | renamed = "➜", | ||
| 594 | untracked = "★", | ||
| 595 | deleted = "", | ||
| 596 | ignored = "◌", | ||
| 597 | }, | ||
| 598 | }, | ||
| 599 | }, | ||
| 600 | }, | ||
| 601 | } | ||
| 602 | -- }}} | ||
| 603 | vim.keymap.set( | ||
| 604 | "n", | ||
| 605 | "<C-n>", | ||
| 606 | "<cmd>NvimTreeToggle<CR>", | ||
| 607 | { desc = "nvimtree toggle window" } | ||
| 608 | ) | ||
| 609 | vim.keymap.set( | ||
| 610 | "n", | ||
| 611 | "<leader>e", | ||
| 612 | "<cmd>NvimTreeFocus<CR>", | ||
| 613 | { desc = "nvimtree focus window" } | ||
| 614 | ) | ||
| 615 | |||
| 616 | -- }}} | ||