diff options
author | Hsieh Chin Fan <pham@topo.tw> | 2024-08-11 19:23:39 +0800 |
---|---|---|
committer | Hsieh Chin Fan <pham@topo.tw> | 2024-08-11 19:23:39 +0800 |
commit | 19fc326fb2ff83ae91399490aab2b5b368418e41 (patch) | |
tree | 0e46336d539f41b08ad61ad0b271e89b15dbcd9d /vim | |
parent | 017422a2ae50514e2d2cc25d32bd77fac79be3b3 (diff) |
Update
Diffstat (limited to 'vim')
-rw-r--r-- | vim/init/basic.vim | 14 | ||||
-rw-r--r-- | vim/init/config.vim | 118 | ||||
-rw-r--r-- | vim/init/keymaps.vim | 33 | ||||
-rw-r--r-- | vim/mini.lua | 8 |
4 files changed, 88 insertions, 85 deletions
diff --git a/vim/init/basic.vim b/vim/init/basic.vim index 83b4ae8..c7043dd 100644 --- a/vim/init/basic.vim +++ b/vim/init/basic.vim | |||
@@ -88,10 +88,10 @@ set whichwrap=b,s | |||
88 | set showtabline=2 | 88 | set showtabline=2 |
89 | 89 | ||
90 | " Side column | 90 | " Side column |
91 | set number relativenumber | 91 | set number relativenumber |
92 | 92 | ||
93 | " Cursor | 93 | " Cursor |
94 | " set cursorline | 94 | set cursorline |
95 | set guicursor=n-v-c-sm:block,i-ci-ve:ver25,r-cr-o:hor20 | 95 | set guicursor=n-v-c-sm:block,i-ci-ve:ver25,r-cr-o:hor20 |
96 | set matchtime=2 | 96 | set matchtime=2 |
97 | 97 | ||
@@ -223,15 +223,7 @@ set writebackup | |||
223 | syntax enable | 223 | syntax enable |
224 | set syntax=filetype | 224 | set syntax=filetype |
225 | set conceallevel=2 | 225 | set conceallevel=2 |
226 | 226 | set concealcursor= | |
227 | " Defualt highlight for matched parenthesis is so weird in many colorscheme | ||
228 | " Why the background color is lighter than my caret !? | ||
229 | " highlight MatchParen ctermfg=NONE ctermbg=darkgrey cterm=NONE | ||
230 | hi LuaParen ctermfg=NONE ctermbg=darkgrey cterm=NONE | ||
231 | |||
232 | " Show trailing spaces | ||
233 | match ExtraWhitespace /\s\+$/ | ||
234 | hi ExtraWhitespace ctermbg=red guibg=red | ||
235 | 227 | ||
236 | " }}} | 228 | " }}} |
237 | " MISC {{{ | 229 | " MISC {{{ |
diff --git a/vim/init/config.vim b/vim/init/config.vim index 8c75de9..8d84ff1 100644 --- a/vim/init/config.vim +++ b/vim/init/config.vim | |||
@@ -145,71 +145,66 @@ augroup InitFileTypes | |||
145 | " }}} | 145 | " }}} |
146 | " Markdown {{{ | 146 | " Markdown {{{ |
147 | 147 | ||
148 | augroup Config_Markdown | 148 | au FileType markdown call InitMarkdownFile() |
149 | au! | 149 | function! InitMarkdownFile() |
150 | 150 | setlocal wrap sw=2 ts=2 | |
151 | au FileType markdown call InitMarkdownFile() | 151 | let g:markdown_apply_heading_level = 0 |
152 | function! InitMarkdownFile() | 152 | nnoremap \fl :let markdown_apply_heading_level = !markdown_apply_heading_level<CR>zX |
153 | setlocal wrap sw=2 ts=2 | 153 | |
154 | let g:markdown_apply_heading_level = 0 | 154 | let b:in_frontmatter = 0 |
155 | nnoremap \fl :let markdown_apply_heading_level = !markdown_apply_heading_level<CR>zX | 155 | setlocal foldexpr=MarkdownLevel() foldmethod=expr |
156 | 156 | setlocal foldtext=MarkdownFoldTextHeading() | |
157 | let b:in_frontmatter = 0 | 157 | |
158 | setlocal foldexpr=MarkdownLevel() foldmethod=expr | 158 | call MarkdownHighlights() |
159 | setlocal foldtext=MarkdownFoldTextHeading() | 159 | endfunc |
160 | 160 | ||
161 | call MarkdownHighlights() | 161 | function! MarkdownHighlights() |
162 | endfunc | 162 | syn match MarkdownHtmlDetails '^<details>' conceal cchar=▶ |
163 | 163 | syn match MarkdownHtmlSummary '<summary>' conceal cchar= | |
164 | function! MarkdownHighlights() | 164 | syn match MarkdownHtmlSummaryEnd '</summary>' conceal |
165 | syn match MarkdownHtmlDetails '^<details>' conceal cchar=▶ | 165 | syn match MarkdownHtmlDetailsEnd '^</details>' conceal cchar=E |
166 | syn match MarkdownHtmlSummary '<summary>' conceal cchar= | 166 | endfunc |
167 | syn match MarkdownHtmlSummaryEnd '</summary>' conceal | ||
168 | syn match MarkdownHtmlDetailsEnd '^</details>' conceal cchar=E | ||
169 | endfunc | ||
170 | |||
171 | function! MarkdownLevel() | ||
172 | " For frontmatter | ||
173 | if v:lnum == 1 && getline(1) =~ '^---' | ||
174 | let b:in_frontmatter = 1 | ||
175 | return '>1' | ||
176 | endif | ||
177 | if b:in_frontmatter | ||
178 | if getline(v:lnum) =~ '^---' | ||
179 | let b:in_frontmatter = 0 | ||
180 | return '<1' | ||
181 | else | ||
182 | return '=' | ||
183 | endif | ||
184 | endif | ||
185 | 167 | ||
186 | " Fold for heading and the following contents | 168 | function! MarkdownLevel() |
187 | let hash_num = matchstr(getline(v:lnum), '^#\+') | 169 | " For frontmatter |
188 | if !empty(hash_num) | 170 | if v:lnum == 1 && getline(1) =~ '^---' |
189 | let foldlevel = g:markdown_apply_heading_level ? len(hash_num) - 1 : 1 | 171 | let b:in_frontmatter = 1 |
190 | " HEADING | 172 | return '>1' |
191 | return len(hash_num) == 1 ? 0 : '>'.foldlevel | 173 | endif |
174 | if b:in_frontmatter | ||
175 | if getline(v:lnum) =~ '^---' | ||
176 | let b:in_frontmatter = 0 | ||
177 | return '<1' | ||
192 | else | 178 | else |
193 | " Contents | 179 | return '=' |
194 | return "=" | ||
195 | endif | 180 | endif |
196 | endfunc | 181 | endif |
197 | 182 | ||
198 | function! MarkdownFoldTextHeading() | 183 | " Fold for heading and the following contents |
199 | " For frontmatter | 184 | let hash_num = matchstr(getline(v:lnum), '^#\+') |
200 | if v:foldstart == 1 && getline(v:foldstart) =~ '^---' | 185 | if !empty(hash_num) |
201 | return '===FrontMatter===' | 186 | let foldlevel = g:markdown_apply_heading_level ? len(hash_num) - 1 : 1 |
202 | endif | 187 | " HEADING |
188 | return len(hash_num) == 1 ? 0 : '>'.foldlevel | ||
189 | else | ||
190 | " Contents | ||
191 | return "=" | ||
192 | endif | ||
193 | endfunc | ||
203 | 194 | ||
204 | " For heading, foltext() | 195 | function! MarkdownFoldTextHeading() |
205 | let origin = split(MarkdownFoldText()[2:], ' ') | 196 | " For frontmatter |
206 | let heading = substitute(join(origin[:-3], ' '), '\#', ' ', 'g') | 197 | if v:foldstart == 1 && getline(v:foldstart) =~ '^---' |
207 | let lines = origin[-2][1:] | 198 | return '===FrontMatter===' |
208 | let fills = repeat('.', 48 - strwidth(heading) - len(lines)) | 199 | endif |
209 | return heading.." "..fills.." "..lines | ||
210 | endfunc | ||
211 | 200 | ||
212 | augroup END | 201 | " For heading, foltext() |
202 | let origin = split(MarkdownFoldText()[2:], ' ') | ||
203 | let heading = substitute(join(origin[:-3], ' '), '\#', ' ', 'g') | ||
204 | let lines = origin[-2][1:] | ||
205 | let fills = repeat('.', 48 - strwidth(heading) - len(lines)) | ||
206 | return heading.." "..fills.." "..lines | ||
207 | endfunc | ||
213 | 208 | ||
214 | " }}} | 209 | " }}} |
215 | " HTML {{{ | 210 | " HTML {{{ |
@@ -255,9 +250,12 @@ augroup InitFileTypes | |||
255 | function! SetPasswordFile() | 250 | function! SetPasswordFile() |
256 | setlocal foldminlines=0 | 251 | setlocal foldminlines=0 |
257 | setlocal foldmethod=manual | 252 | setlocal foldmethod=manual |
258 | setlocal foldtext="Password" | 253 | setlocal foldtext=PasswordFoldtext() |
259 | norm! ggzfl | 254 | norm! ggzfl |
260 | endfunc | 255 | endfunc |
256 | function! PasswordFoldtext() | ||
257 | return "---Password---" | ||
258 | endfunc | ||
261 | " }}} | 259 | " }}} |
262 | " Beancount {{{ | 260 | " Beancount {{{ |
263 | 261 | ||
diff --git a/vim/init/keymaps.vim b/vim/init/keymaps.vim index a28ce09..95d4c18 100644 --- a/vim/init/keymaps.vim +++ b/vim/init/keymaps.vim | |||
@@ -12,11 +12,11 @@ map <space> / | |||
12 | inoremap <C-c> <Esc>l | 12 | inoremap <C-c> <Esc>l |
13 | 13 | ||
14 | " Set wrap | 14 | " Set wrap |
15 | nnoremap \w :set wrap!<CR> | 15 | nnoremap \w :set wrap!<CR>:set wrap?<CR> |
16 | 16 | ||
17 | " Fast saving | 17 | " Fast saving |
18 | function! s:WriteOrEnterFileName() | 18 | function! s:WriteOrEnterFileName() |
19 | if !empty(expand('%')) | write! | else | call feedkeys(":w ") | endif | 19 | if !empty(bufname('%')) | write! | else | call feedkeys(":w ") | endif |
20 | endfunction | 20 | endfunction |
21 | nnoremap <leader>w :call <SID>WriteOrEnterFileName()<CR> | 21 | nnoremap <leader>w :call <SID>WriteOrEnterFileName()<CR> |
22 | 22 | ||
@@ -37,7 +37,7 @@ augroup vimrc_CRfix | |||
37 | augroup END | 37 | augroup END |
38 | 38 | ||
39 | " Spell | 39 | " Spell |
40 | nnoremap \sp :set spell!<CR>:set spell?<CR> | 40 | nnoremap \\sp :set spell!<CR>:set spell?<CR> |
41 | 41 | ||
42 | " Show full path by default | 42 | " Show full path by default |
43 | nnoremap <C-g> 1<C-g> | 43 | nnoremap <C-g> 1<C-g> |
@@ -93,7 +93,6 @@ nnoremap <C-h> 30h | |||
93 | nnoremap <C-l> 30l | 93 | nnoremap <C-l> 30l |
94 | 94 | ||
95 | " File under the cursor | 95 | " File under the cursor |
96 | nnoremap <CR> gf | ||
97 | nnoremap gF :e <cfile><CR> | 96 | nnoremap gF :e <cfile><CR> |
98 | 97 | ||
99 | xnoremap iq i" | 98 | xnoremap iq i" |
@@ -160,6 +159,12 @@ inoremap <silent><M-9> <Esc>:tablast<CR> | |||
160 | " }}} | 159 | " }}} |
161 | " EDIT {{{ | 160 | " EDIT {{{ |
162 | 161 | ||
162 | " Set text width for auto wrapping | ||
163 | nnoremap <leader><leader>tw :set fo+=t<CR>:<C-\>e'set tw='..&tw<CR> | ||
164 | |||
165 | " Set columns | ||
166 | nnoremap <leader><leader>co :<C-\>e'set columns='..&co<CR> | ||
167 | |||
163 | " Move one line up and down | 168 | " Move one line up and down |
164 | nnoremap <C-j> ddp | 169 | nnoremap <C-j> ddp |
165 | nnoremap <C-k> ddkP | 170 | nnoremap <C-k> ddkP |
@@ -247,8 +252,6 @@ vnoremap zF :<C-u>call ToggleUnfoldSelection()<CR> | |||
247 | " Resume | 252 | " Resume |
248 | nnoremap zF :call ToggleUnfoldSelection()<CR>zv | 253 | nnoremap zF :call ToggleUnfoldSelection()<CR>zv |
249 | 254 | ||
250 | vnoremap \z :call GrayOutOthers()<CR> | ||
251 | |||
252 | " Select current fold | 255 | " Select current fold |
253 | onoremap az :<C-U>silent! keepjumps normal![zV]z<CR> | 256 | onoremap az :<C-U>silent! keepjumps normal![zV]z<CR> |
254 | xnoremap az :<C-U>silent! keepjumps normal![zV]z<CR> | 257 | xnoremap az :<C-U>silent! keepjumps normal![zV]z<CR> |
@@ -298,6 +301,8 @@ function! GrayOutOthers() | |||
298 | call setpos('.', pos) | 301 | call setpos('.', pos) |
299 | endif | 302 | endif |
300 | endfunction | 303 | endfunction |
304 | vnoremap \z :call GrayOutOthers()<CR> | ||
305 | nnoremap \z :call GrayOutOthers()<CR> | ||
301 | 306 | ||
302 | " }}} | 307 | " }}} |
303 | " REGISTER {{{ | 308 | " REGISTER {{{ |
@@ -481,7 +486,7 @@ function! CloseBufferSafely() | |||
481 | endif | 486 | endif |
482 | 487 | ||
483 | let bufnr = bufnr() | 488 | let bufnr = bufnr() |
484 | if !has_key(t:, 'bufs') || len(t:bufs) == 1 | 489 | if !has_key(t:, 'bufs') || len(t:bufs) <= 1 |
485 | " Close tab for last buffer | 490 | " Close tab for last buffer |
486 | tabclose | 491 | tabclose |
487 | else | 492 | else |
@@ -621,10 +626,10 @@ endfunc | |||
621 | " }}} | 626 | " }}} |
622 | " TERMINAL {{{ | 627 | " TERMINAL {{{ |
623 | 628 | ||
624 | " Use <leader>z to toggle | 629 | " Use <leader>z to toggle window padding for alacritty |
625 | let g:alacritty_extra_padding = 0 | 630 | let g:alacritty_extra_padding = 0 |
626 | function! ToggleWinPadding() | 631 | function! ToggleWinPadding(padding) |
627 | if g:alacritty_extra_padding | 632 | if g:alacritty_extra_padding && !a:padding |
628 | !alacritty msg config --window-id $WINDOWID --reset | 633 | !alacritty msg config --window-id $WINDOWID --reset |
629 | call SetEmulaterBackground() | 634 | call SetEmulaterBackground() |
630 | hi EndOfBuffer None | 635 | hi EndOfBuffer None |
@@ -638,12 +643,14 @@ function! ToggleWinPadding() | |||
638 | exe "hi EndOfBuffer guifg="..bg_color.." guibg="..bg_color | 643 | exe "hi EndOfBuffer guifg="..bg_color.." guibg="..bg_color |
639 | exe "hi MsgArea guibg="..bg_color | 644 | exe "hi MsgArea guibg="..bg_color |
640 | endtry | 645 | endtry |
641 | exe "!alacritty msg config --window-id $WINDOWID window.padding.x=270 'colors.primary.background=\"\\"..bg_color.."\"'" | 646 | |
647 | let padding = a:padding ? a:padding : "270" | ||
648 | exe "!alacritty msg config --window-id $WINDOWID window.padding.x=" . padding . " 'colors.primary.background=\"\\"..bg_color.."\"'" | ||
642 | endif | 649 | endif |
643 | 650 | ||
644 | let g:alacritty_extra_padding = !g:alacritty_extra_padding | 651 | let g:alacritty_extra_padding = !g:alacritty_extra_padding |
645 | endfunc | 652 | endfunc |
646 | nnoremap <leader>z <Cmd>silent call ToggleWinPadding()<CR> | 653 | nnoremap <expr> <leader>z ":\<C-u> silent call ToggleWinPadding(" . v:count . ")\<CR>" |
647 | 654 | ||
648 | " In case ALT key is not working | 655 | " In case ALT key is not working |
649 | " execute "set <M-2>=\e2" | 656 | " execute "set <M-2>=\e2" |
@@ -666,7 +673,7 @@ nnoremap <leader>z <Cmd>silent call ToggleWinPadding()<CR> | |||
666 | " HIGHLIGHT {{{ | 673 | " HIGHLIGHT {{{ |
667 | 674 | ||
668 | nnoremap <leader>I :Inspect<CR> | 675 | nnoremap <leader>I :Inspect<CR> |
669 | nnoremap <expr> \sy exists("g:syntax_on") ? ":syntax off <CR>" : ":syntax enable<CR>" | 676 | nnoremap <expr> \s exists("g:syntax_on") ? ":syntax off <CR>" : ":syntax enable<CR>" |
670 | 677 | ||
671 | " Toggle conceallevel0/2 | 678 | " Toggle conceallevel0/2 |
672 | nnoremap <expr> \c ":set conceallevel="..(&cole ? 0 : 2).."<CR>:set cole?<CR>" | 679 | nnoremap <expr> \c ":set conceallevel="..(&cole ? 0 : 2).."<CR>:set cole?<CR>" |
diff --git a/vim/mini.lua b/vim/mini.lua index ff1a3fe..1ca1d26 100644 --- a/vim/mini.lua +++ b/vim/mini.lua | |||
@@ -48,7 +48,7 @@ require("mini.extra").setup() | |||
48 | -- }}} | 48 | -- }}} |
49 | -- mini.colors {{{ | 49 | -- mini.colors {{{ |
50 | require("mini.colors").setup() | 50 | require("mini.colors").setup() |
51 | vim.keymap.set("n", "<leader><leader>co", function() | 51 | vim.keymap.set("n", "<leader><leader>color", function() |
52 | require("mini.colors").interactive() | 52 | require("mini.colors").interactive() |
53 | end) | 53 | end) |
54 | -- }}} | 54 | -- }}} |
@@ -323,6 +323,12 @@ require("mini.pairs").setup() | |||
323 | -- -- suda {{{ | 323 | -- -- suda {{{ |
324 | -- add { source = "lambdalisue/suda.vim" } | 324 | -- add { source = "lambdalisue/suda.vim" } |
325 | -- }}} | 325 | -- }}} |
326 | -- -- undotree {{{ | ||
327 | -- Add { | ||
328 | -- source = 'mbbill/undotree' | ||
329 | -- } | ||
330 | -- vim.cmd("nnoremap <F5> :UndotreeToggle<CR>") | ||
331 | -- -- }}} | ||
326 | -- marks.nvim {{{ | 332 | -- marks.nvim {{{ |
327 | Add { | 333 | Add { |
328 | source = "chentoast/marks.nvim" | 334 | source = "chentoast/marks.nvim" |