diff options
| author | Hsieh Chin Fan <pham@topo.tw> | 2024-07-30 20:08:14 +0800 |
|---|---|---|
| committer | Hsieh Chin Fan <pham@topo.tw> | 2024-07-30 20:08:14 +0800 |
| commit | 7479fe85169c38c543c57143dacae1275f9b10c9 (patch) | |
| tree | 4bbaf9b298cca6a1244ed37c5acd3e7ae5680165 | |
| parent | c680ac2a4b06ebdc2da9a05311f01495c73f9c01 (diff) | |
Update
| -rw-r--r-- | vim/init/basic.vim | 10 | ||||
| -rw-r--r-- | vim/init/config.vim | 12 | ||||
| -rw-r--r-- | vim/init/keymaps.vim | 33 | ||||
| -rw-r--r-- | vim/mini.lua | 14 |
4 files changed, 47 insertions, 22 deletions
diff --git a/vim/init/basic.vim b/vim/init/basic.vim index 751b3ac..8999f77 100644 --- a/vim/init/basic.vim +++ b/vim/init/basic.vim | |||
| @@ -32,7 +32,6 @@ augroup tabinfo | |||
| 32 | endfor | 32 | endfor |
| 33 | endfunc | 33 | endfunc |
| 34 | 34 | ||
| 35 | nnoremap T :echo t:bufs<CR> | ||
| 36 | augroup END | 35 | augroup END |
| 37 | "}}} | 36 | "}}} |
| 38 | " GERERNAL {{{ | 37 | " GERERNAL {{{ |
| @@ -60,9 +59,6 @@ autocmd FocusGained,BufEnter .* checktime | |||
| 60 | set spell | 59 | set spell |
| 61 | set spellfile="/tmp/spell" | 60 | set spellfile="/tmp/spell" |
| 62 | 61 | ||
| 63 | " Custom sign from help page :h sign | ||
| 64 | sign define piet text=>> texthl=Search | ||
| 65 | |||
| 66 | " }}} | 62 | " }}} |
| 67 | " VISUAL {{{ | 63 | " VISUAL {{{ |
| 68 | 64 | ||
| @@ -96,6 +92,12 @@ set errorformat+=[%f:%l]\ ->\ %m,[%f:%l]:%m | |||
| 96 | " Direction for new window | 92 | " Direction for new window |
| 97 | set splitright | 93 | set splitright |
| 98 | 94 | ||
| 95 | " Set signcolumn | ||
| 96 | set signcolumn=auto:3 | ||
| 97 | " Custom sign from help page :h sign | ||
| 98 | sign define piet text=>> texthl=Search | ||
| 99 | |||
| 100 | |||
| 99 | " }}} | 101 | " }}} |
| 100 | " EDIT {{{ | 102 | " EDIT {{{ |
| 101 | 103 | ||
diff --git a/vim/init/config.vim b/vim/init/config.vim index 9700c61..368be25 100644 --- a/vim/init/config.vim +++ b/vim/init/config.vim | |||
| @@ -17,7 +17,7 @@ augroup END | |||
| 17 | augroup TerminalSize | 17 | augroup TerminalSize |
| 18 | au! | 18 | au! |
| 19 | function! LayoutForSmallTerminal(bound) | 19 | function! LayoutForSmallTerminal(bound) |
| 20 | let l:bound = a:bound ? a:bound : 19 | 20 | let l:bound = a:bound ? a:bound : 20 |
| 21 | if &lines < l:bound || g:alacritty_extra_padding | 21 | if &lines < l:bound || g:alacritty_extra_padding |
| 22 | silent! set cmdheight=0 laststatus=0 showtabline=0 signcolumn=no nowrap scrolloff=1 | 22 | silent! set cmdheight=0 laststatus=0 showtabline=0 signcolumn=no nowrap scrolloff=1 |
| 23 | else | 23 | else |
| @@ -124,7 +124,7 @@ augroup InitFileTypes | |||
| 124 | " Filetype for Vim {{{ | 124 | " Filetype for Vim {{{ |
| 125 | 125 | ||
| 126 | " Help page | 126 | " Help page |
| 127 | autocmd BufEnter * if &filetype == 'help' | wincmd T | set buflisted | endif | 127 | autocmd BufEnter * if &filetype == 'help' | wincmd T | set buflisted nofoldenable | endif |
| 128 | 128 | ||
| 129 | " quickfix: hide line number | 129 | " quickfix: hide line number |
| 130 | autocmd FileType quickfix setlocal nonumber | 130 | autocmd FileType quickfix setlocal nonumber |
| @@ -177,8 +177,8 @@ augroup InitFileTypes | |||
| 177 | let origin = split(MarkdownFoldText()[2:], ' ') | 177 | let origin = split(MarkdownFoldText()[2:], ' ') |
| 178 | let heading = substitute(join(origin[:-3], ' '), '\#', ' ', 'g') | 178 | let heading = substitute(join(origin[:-3], ' '), '\#', ' ', 'g') |
| 179 | let lines = join(origin[-2:], ' ')[1:-2] | 179 | let lines = join(origin[-2:], ' ')[1:-2] |
| 180 | let spaces = repeat('.', 50 - len(heading) - len(lines)) | 180 | let fills = repeat('.', 48 - len(heading) - len(lines)) |
| 181 | return heading..spaces.." "..lines | 181 | return heading.." "..fills.." "..lines |
| 182 | endfunc | 182 | endfunc |
| 183 | 183 | ||
| 184 | augroup END | 184 | augroup END |
| @@ -224,7 +224,7 @@ augroup InitFileTypes | |||
| 224 | " TODO a better way to determine a file is related to password-store, now use | 224 | " TODO a better way to determine a file is related to password-store, now use |
| 225 | " files under /dev/shm as filter | 225 | " files under /dev/shm as filter |
| 226 | autocmd BufRead /dev/shm/*.txt call SetPasswordFile() | 226 | autocmd BufRead /dev/shm/*.txt call SetPasswordFile() |
| 227 | function SetPasswordFile() | 227 | function! SetPasswordFile() |
| 228 | setlocal foldminlines=0 | 228 | setlocal foldminlines=0 |
| 229 | setlocal foldmethod=manual | 229 | setlocal foldmethod=manual |
| 230 | setlocal foldtext="Password" | 230 | setlocal foldtext="Password" |
| @@ -234,7 +234,7 @@ augroup InitFileTypes | |||
| 234 | " Beancount {{{ | 234 | " Beancount {{{ |
| 235 | 235 | ||
| 236 | autocmd BufRead,BufNewFile *.bean call PrepareBean() | 236 | autocmd BufRead,BufNewFile *.bean call PrepareBean() |
| 237 | function PrepareBean() | 237 | function! PrepareBean() |
| 238 | set filetype=beancount | 238 | set filetype=beancount |
| 239 | silent !setsid fava ~/bean/main.bean &>/dev/null | 239 | silent !setsid fava ~/bean/main.bean &>/dev/null |
| 240 | autocmd VimLeave * silent !killall fava | 240 | autocmd VimLeave * silent !killall fava |
diff --git a/vim/init/keymaps.vim b/vim/init/keymaps.vim index ce5d315..7921693 100644 --- a/vim/init/keymaps.vim +++ b/vim/init/keymaps.vim | |||
| @@ -12,7 +12,7 @@ map <space> / | |||
| 12 | inoremap <C-c> <Esc>l | 12 | inoremap <C-c> <Esc>l |
| 13 | 13 | ||
| 14 | " Set wrap | 14 | " Set wrap |
| 15 | nnoremap <leader>W :set wrap!<CR> | 15 | nnoremap \w :set wrap!<CR> |
| 16 | 16 | ||
| 17 | " Fast saving | 17 | " Fast saving |
| 18 | function! s:WriteOrEnterFileName() | 18 | function! s:WriteOrEnterFileName() |
| @@ -53,14 +53,14 @@ function! ToggleWinPadding() | |||
| 53 | if g:alacritty_extra_padding | 53 | if g:alacritty_extra_padding |
| 54 | !alacritty msg config --window-id $WINDOWID --reset | 54 | !alacritty msg config --window-id $WINDOWID --reset |
| 55 | else | 55 | else |
| 56 | redir => output | hi Normal | redir END | 56 | redir => output | hi SignColumn | redir END |
| 57 | let bg_color = matchstr(output, 'guibg=\zs[^\s]\+\ze') | 57 | let bg_color = matchstr(output, 'guibg=\zs[^\s]\+\ze') |
| 58 | exe "!alacritty msg config --window-id $WINDOWID window.padding.x=300 'colors.primary.background=\"\\"..bg_color.."\"'" | 58 | exe "!alacritty msg config --window-id $WINDOWID window.padding.x=300 'colors.primary.background=\"\\"..bg_color.."\"'" |
| 59 | endif | 59 | endif |
| 60 | 60 | ||
| 61 | let g:alacritty_extra_padding = !g:alacritty_extra_padding | 61 | let g:alacritty_extra_padding = !g:alacritty_extra_padding |
| 62 | endfunc | 62 | endfunc |
| 63 | nnoremap <leader>Z <Cmd>silent call ToggleWinPadding()<CR> | 63 | nnoremap <leader>z <Cmd>silent call ToggleWinPadding()<CR> |
| 64 | 64 | ||
| 65 | " }}} | 65 | " }}} |
| 66 | " WORKING_DIR {{{ | 66 | " WORKING_DIR {{{ |
| @@ -180,9 +180,22 @@ nnoremap <C-p> "0p | |||
| 180 | map <leader>pp :setlocal paste!<CR> | 180 | map <leader>pp :setlocal paste!<CR> |
| 181 | 181 | ||
| 182 | " Copy from system clipboard | 182 | " Copy from system clipboard |
| 183 | nnoremap <leader>P :r !xsel -ob<CR> | 183 | nnoremap gp "+p |
| 184 | vnoremap Y "+y | 184 | vnoremap Y "+y |
| 185 | |||
| 185 | " }}} | 186 | " }}} |
| 187 | " MARKS {{{ | ||
| 188 | |||
| 189 | " Delete mark | ||
| 190 | function! DeleteMark(mark) | ||
| 191 | let mark = nr2char(a:mark) | ||
| 192 | if mark =~ '[a-z]' | ||
| 193 | execute "delmarks " . mark | ||
| 194 | endif | ||
| 195 | endfunction | ||
| 196 | nnoremap dm :call DeleteMark(getchar())<CR> | ||
| 197 | |||
| 198 | "}}} | ||
| 186 | " EDIT {{{ | 199 | " EDIT {{{ |
| 187 | 200 | ||
| 188 | " Move one line up and down | 201 | " Move one line up and down |
| @@ -194,6 +207,7 @@ nnoremap S S<ESC> | |||
| 194 | 207 | ||
| 195 | " }}} | 208 | " }}} |
| 196 | " TERMINAL {{{ | 209 | " TERMINAL {{{ |
| 210 | |||
| 197 | " In case ALT key is not working | 211 | " In case ALT key is not working |
| 198 | " execute "set <M-2>=\e2" | 212 | " execute "set <M-2>=\e2" |
| 199 | " execute "set <M-1>=\e1" | 213 | " execute "set <M-1>=\e1" |
| @@ -210,6 +224,7 @@ nnoremap S S<ESC> | |||
| 210 | " execute "set <M-d>=\ed" | 224 | " execute "set <M-d>=\ed" |
| 211 | " execute "set <M-l>=\el" | 225 | " execute "set <M-l>=\el" |
| 212 | " execute "set <M-h>=\eh" | 226 | " execute "set <M-h>=\eh" |
| 227 | |||
| 213 | "}}} | 228 | "}}} |
| 214 | " MANAGE_VIMRC {{{ | 229 | " MANAGE_VIMRC {{{ |
| 215 | 230 | ||
| @@ -424,11 +439,11 @@ endfunc | |||
| 424 | nnoremap <leader><leader>fm :<C-\>e'set foldmethod='..&foldmethod<CR> | 439 | nnoremap <leader><leader>fm :<C-\>e'set foldmethod='..&foldmethod<CR> |
| 425 | nnoremap <leader><leader>fc :<C-\>e'set foldcolumn='..&foldcolumn<CR> | 440 | nnoremap <leader><leader>fc :<C-\>e'set foldcolumn='..&foldcolumn<CR> |
| 426 | 441 | ||
| 427 | nnoremap zi zizz:silent exe &foldenable ? "set foldcolumn=auto:3" : "set foldcolumn=0"<CR> | 442 | nnoremap <expr> zi "zizz:silent set foldcolumn="..(&foldenable ? "0" : "auto:3").."\<CR>" |
| 428 | 443 | ||
| 429 | " Show fold level when it changes | 444 | " Show fold level when it changes |
| 430 | nnoremap zm zm:set foldlevel<CR> | 445 | nnoremap zm zm:set foldlevel?<CR> |
| 431 | nnoremap zr zr:set foldlevel<CR> | 446 | nnoremap zr zr:set foldlevel?<CR> |
| 432 | 447 | ||
| 433 | " Fold all except selection | 448 | " Fold all except selection |
| 434 | vnoremap zF :<C-u>call ToggleUnfoldSelection()<CR> | 449 | vnoremap zF :<C-u>call ToggleUnfoldSelection()<CR> |
| @@ -591,6 +606,10 @@ nnoremap <leader>rr :Redir<space> | |||
| 591 | " Search for selected test | 606 | " Search for selected test |
| 592 | vnoremap * y/\V<C-R>=escape(@",'/\')<CR><CR> | 607 | vnoremap * y/\V<C-R>=escape(@",'/\')<CR><CR> |
| 593 | 608 | ||
| 609 | nnoremap g/ gv<esc>/\%V | ||
| 610 | vnoremap g/ <esc>/\%V | ||
| 611 | |||
| 612 | " Substitue across file | ||
| 594 | vnoremap <leader>s y:%s//<C-R>0/g<LEFT><LEFT> | 613 | vnoremap <leader>s y:%s//<C-R>0/g<LEFT><LEFT> |
| 595 | 614 | ||
| 596 | " Usage: Press <TAB> n times for area, and <CR> for substitute | 615 | " Usage: Press <TAB> n times for area, and <CR> for substitute |
diff --git a/vim/mini.lua b/vim/mini.lua index 6c31590..115fd27 100644 --- a/vim/mini.lua +++ b/vim/mini.lua | |||
| @@ -776,14 +776,17 @@ require("mini.deps").setup({ | |||
| 776 | }) | 776 | }) |
| 777 | Add, Now, Later = MiniDeps.add, MiniDeps.now, MiniDeps.later | 777 | Add, Now, Later = MiniDeps.add, MiniDeps.now, MiniDeps.later |
| 778 | -- }}} | 778 | -- }}} |
| 779 | -- mini.basics {{{ | 779 | -- -- mini.basics {{{ |
| 780 | require("mini.basics").setup() | 780 | -- require("mini.basics").setup() |
| 781 | -- }}} | 781 | -- -- }}} |
| 782 | -- mini.misc {{{ | 782 | -- mini.misc {{{ |
| 783 | require("mini.misc").setup({ | 783 | require("mini.misc").setup({ |
| 784 | make_global = { "put", "put_text", "zoom" }, | 784 | make_global = { "put", "put_text", "zoom" }, |
| 785 | }) | 785 | }) |
| 786 | vim.keymap.set( 'n', '<leader>z', function() zoom() end, { buffer = bufnr, desc = 'zoom' }) | 786 | vim.keymap.set( 'n', '<leader>Z', function() |
| 787 | zoom() | ||
| 788 | vim.cmd("silent! call ToggleWinPadding()") | ||
| 789 | end, { buffer = bufnr, desc = 'zoom' }) | ||
| 787 | --}}} | 790 | --}}} |
| 788 | -- mini.extra {{{ | 791 | -- mini.extra {{{ |
| 789 | require("mini.extra").setup() | 792 | require("mini.extra").setup() |
| @@ -1148,13 +1151,14 @@ vim.keymap.set("n", "<M-p>", "<Cmd>BufferLineTogglePin<CR>", opts) | |||
| 1148 | -- }}} | 1151 | -- }}} |
| 1149 | -- -- TODO: tabpages | 1152 | -- -- TODO: tabpages |
| 1150 | -- -- }}} | 1153 | -- -- }}} |
| 1154 | -- marks.nvim {{{ | ||
| 1151 | Add { | 1155 | Add { |
| 1152 | source = "chentoast/marks.nvim" | 1156 | source = "chentoast/marks.nvim" |
| 1153 | } | 1157 | } |
| 1154 | require('marks').setup { | 1158 | require('marks').setup { |
| 1155 | } | 1159 | } |
| 1156 | vim.cmd("hi MarkSignHL guifg=#f85e84 guibg=#37343a") | 1160 | vim.cmd("hi MarkSignHL guifg=#f85e84 guibg=#37343a") |
| 1157 | 1161 | -- }}} | |
| 1158 | -- KEYMAPS {{{ | 1162 | -- KEYMAPS {{{ |
| 1159 | 1163 | ||
| 1160 | -- Use floating window for translation | 1164 | -- Use floating window for translation |