diff options
Diffstat (limited to 'vim')
-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 | -- }}} | ||