diff options
| author | Hsieh Chin Fan <pham@topo.tw> | 2024-10-06 12:06:27 +0800 |
|---|---|---|
| committer | Hsieh Chin Fan <pham@topo.tw> | 2024-10-06 12:06:27 +0800 |
| commit | 1b37f7d7f1554f4ef4cd185c1181d54d9956b1db (patch) | |
| tree | 54057c5cee90f3a93b240d77828f14f90af8c93f /vim | |
| parent | a9386c536189f2aaf38c9e2ba674a096657ca366 (diff) | |
Update
Diffstat (limited to 'vim')
| -rw-r--r-- | vim/init/basic.vim | 6 | ||||
| -rw-r--r-- | vim/init/config.vim | 38 | ||||
| -rw-r--r-- | vim/init/keymaps.vim | 3 | ||||
| -rw-r--r-- | vim/mini.lua | 67 | ||||
| -rw-r--r-- | vim/spell/en.utf-8.add | 16 | ||||
| -rw-r--r-- | vim/spell/en.utf-8.add.spl | bin | 0 -> 307 bytes |
6 files changed, 102 insertions, 28 deletions
diff --git a/vim/init/basic.vim b/vim/init/basic.vim index 79ed3fd..6553a6c 100644 --- a/vim/init/basic.vim +++ b/vim/init/basic.vim | |||
| @@ -86,6 +86,12 @@ set display=lastline | |||
| 86 | set lazyredraw | 86 | set lazyredraw |
| 87 | set whichwrap=b,s | 87 | set whichwrap=b,s |
| 88 | 88 | ||
| 89 | " linebreak, ref: https://stackoverflow.com/questions/1204149/smart-wrap-in-vim | ||
| 90 | set breakindent | ||
| 91 | " ident by an additional 2 characters on wrapped lines, when line >= 40 characters, put 'showbreak' at start of line | ||
| 92 | set breakindentopt=shift:4,min:40,sbr | ||
| 93 | set showbreak=>> | ||
| 94 | |||
| 89 | " Tab | 95 | " Tab |
| 90 | set showtabline=2 | 96 | set showtabline=2 |
| 91 | 97 | ||
diff --git a/vim/init/config.vim b/vim/init/config.vim index 4676942..5c53728 100644 --- a/vim/init/config.vim +++ b/vim/init/config.vim | |||
| @@ -216,6 +216,34 @@ augroup InitFileTypes | |||
| 216 | endfunc | 216 | endfunc |
| 217 | 217 | ||
| 218 | " }}} | 218 | " }}} |
| 219 | " Javascript {{{ | ||
| 220 | |||
| 221 | au FileType javascript call InitJavascriptFile() | ||
| 222 | function! InitJavascriptFile() | ||
| 223 | setlocal wrap sw=2 ts=2 | ||
| 224 | |||
| 225 | setlocal foldexpr=JsdocLevel() foldmethod=expr | ||
| 226 | |||
| 227 | let l:jsdocPrefix = "JSDOC: " | ||
| 228 | setlocal foldtext=JSdocFoldText() | ||
| 229 | endfunc | ||
| 230 | |||
| 231 | function! JsdocLevel() | ||
| 232 | let jsdoc = matchstr(getline(v:lnum), '^\zs\s*\/\*\*\ze') | ||
| 233 | if !empty(jsdoc) | ||
| 234 | let foldlevel = len(matchstr(jsdoc, '^\zs\s*\ze')) + 1 | ||
| 235 | return '>'.foldlevel | ||
| 236 | else | ||
| 237 | " Contents | ||
| 238 | return "=" | ||
| 239 | endif | ||
| 240 | endfunc | ||
| 241 | |||
| 242 | function! JSdocFoldText() | ||
| 243 | return "JSDOC: ".matchstr(getline(v:foldstart + 1), '^[\* ]*\zs.*\ze') | ||
| 244 | endfunc | ||
| 245 | |||
| 246 | " }}} | ||
| 219 | " HTML {{{ | 247 | " HTML {{{ |
| 220 | 248 | ||
| 221 | " Usage: <leader>cl(ass) or <leader>id to edit html tag attribute | 249 | " Usage: <leader>cl(ass) or <leader>id to edit html tag attribute |
| @@ -235,8 +263,11 @@ augroup InitFileTypes | |||
| 235 | startinsert | 263 | startinsert |
| 236 | endif | 264 | endif |
| 237 | endfunc | 265 | endfunc |
| 238 | autocmd FileType html,markdown nnoremap <buffer> <leader>cl :call <SID>ChangeAttr("class")<CR> | 266 | autocmd FileType html,markdown,javascript nnoremap <buffer> <leader>cl :call <SID>ChangeAttr("class")<CR> |
| 239 | autocmd FileType html,markdown nnoremap <buffer> <leader>id :call <SID>ChangeAttr("id")<CR> | 267 | autocmd FileType html,markdown,javascript nnoremap <buffer> <leader>id :call <SID>ChangeAttr("id")<CR> |
| 268 | autocmd FileType css,javascript nnoremap <buffer> <F9> :let LINE=line(".")<CR>:silent! %!npx standard --stdin --fix 2>/dev/null<CR>:exe LINE<CR> | ||
| 269 | autocmd FileType css,javascript nmap <buffer> <F8> cdg:let LINE=line(".")<CR>:%!stylelint --fix --stdin 2>/dev/null<CR>:exe LINE<CR> | ||
| 270 | autocmd FileType css,javascript set formatprg=prettier | ||
| 240 | 271 | ||
| 241 | " Reload preview server | 272 | " Reload preview server |
| 242 | autocmd BufWrite *.html,*.js,*.css call ReloadServer() | 273 | autocmd BufWrite *.html,*.js,*.css call ReloadServer() |
| @@ -279,4 +310,5 @@ augroup InitFileTypes | |||
| 279 | 310 | ||
| 280 | augroup END | 311 | augroup END |
| 281 | 312 | ||
| 282 | " }}} | 313 | let g:ale_lint_on_save = 1 |
| 314 | let g:ale_fix_on_save = 1 | ||
diff --git a/vim/init/keymaps.vim b/vim/init/keymaps.vim index 2d58fe9..07be9b3 100644 --- a/vim/init/keymaps.vim +++ b/vim/init/keymaps.vim | |||
| @@ -476,6 +476,7 @@ let g:quitVimWhenPressingCtrlC = 1 | |||
| 476 | function! ToggleQuit() | 476 | function! ToggleQuit() |
| 477 | let g:quitVimWhenPressingCtrlC = !g:quitVimWhenPressingCtrlC | 477 | let g:quitVimWhenPressingCtrlC = !g:quitVimWhenPressingCtrlC |
| 478 | let message = g:quitVimWhenPressingCtrlC ? "Unlock" : "Lock" | 478 | let message = g:quitVimWhenPressingCtrlC ? "Unlock" : "Lock" |
| 479 | nnoremap ZZ <C-c> | ||
| 479 | echo message | 480 | echo message |
| 480 | endfunction | 481 | endfunction |
| 481 | nnoremap \q :call ToggleQuit()<CR> | 482 | nnoremap \q :call ToggleQuit()<CR> |
| @@ -502,7 +503,7 @@ function! CloseBufferSafely() | |||
| 502 | tabclose | 503 | tabclose |
| 503 | else | 504 | else |
| 504 | " Switch to proper buffer | 505 | " Switch to proper buffer |
| 505 | let next_buf = get(t:bufs, bufnr('#')) ? bufnr('#') : filter(t:bufs, 'v:val != '..bufnr)[-1] | 506 | let next_buf = filter(t:bufs, 'v:val != '..bufnr)[-1] |
| 506 | exe "b "..next_buf | 507 | exe "b "..next_buf |
| 507 | " exe "buffer ".g:lastbuffer | 508 | " exe "buffer ".g:lastbuffer |
| 508 | call filter(t:bufs, 'v:val != '..bufnr) | 509 | call filter(t:bufs, 'v:val != '..bufnr) |
diff --git a/vim/mini.lua b/vim/mini.lua index 177d80a..7451258 100644 --- a/vim/mini.lua +++ b/vim/mini.lua | |||
| @@ -564,11 +564,14 @@ require("lazy").setup({ | |||
| 564 | require("telescope").setup({ | 564 | require("telescope").setup({ |
| 565 | defaults = { | 565 | defaults = { |
| 566 | preview = { | 566 | preview = { |
| 567 | filesize_limit = 0.5, | ||
| 567 | filesize_hook = function(filepath, bufnr, opts) | 568 | filesize_hook = function(filepath, bufnr, opts) |
| 568 | local max_bytes = 100000 | 569 | local max_bytes = 10000 |
| 569 | local cmd = { "head", "-c", max_bytes, filepath } | 570 | local cmd = { "head", "-c", max_bytes, filepath } |
| 570 | require('telescope.previewers.utils').job_maker(cmd, bufnr, opts) | 571 | require('telescope.previewers.utils').job_maker(cmd, bufnr, opts) |
| 571 | end | 572 | end, |
| 573 | timeout = 50, | ||
| 574 | highlight_limit = 1, | ||
| 572 | }, | 575 | }, |
| 573 | mappings = { | 576 | mappings = { |
| 574 | i = { | 577 | i = { |
| @@ -644,10 +647,10 @@ require("lazy").setup({ | |||
| 644 | "<leader>sF", | 647 | "<leader>sF", |
| 645 | function() | 648 | function() |
| 646 | require("telescope.builtin").find_files({ | 649 | require("telescope.builtin").find_files({ |
| 647 | follow = ture, | 650 | follow = ture, |
| 648 | no_ignore = true, | 651 | no_ignore = true, |
| 649 | hidden = true, | 652 | hidden = true, |
| 650 | file_ignore_patterns = {}, | 653 | file_ignore_patterns = {}, |
| 651 | }) | 654 | }) |
| 652 | end, | 655 | end, |
| 653 | { desc = "telescope find all files" } | 656 | { desc = "telescope find all files" } |
| @@ -826,24 +829,22 @@ require("lazy").setup({ | |||
| 826 | lazy = false, | 829 | lazy = false, |
| 827 | config = function() | 830 | config = function() |
| 828 | require("which-key").setup({ | 831 | require("which-key").setup({ |
| 829 | defaults = { | 832 | win = { |
| 830 | win = { | 833 | -- don't allow the popup to overlap with the cursor |
| 831 | -- don't allow the popup to overlap with the cursor | 834 | no_overlap = false, |
| 832 | no_overlap = false, | 835 | -- width = 1, |
| 833 | -- width = 1, | 836 | height = { min = 10, max = 25 }, |
| 834 | height = { min = 10, max = 25 }, | 837 | -- col = 0, |
| 835 | -- col = 0, | 838 | -- row = math.huge, |
| 836 | -- row = math.huge, | 839 | -- border = "none", |
| 837 | -- border = "none", | 840 | padding = { 1, 2 }, -- extra window padding [top/bottom, right/left] |
| 838 | padding = { 1, 2 }, -- extra window padding [top/bottom, right/left] | 841 | title = false, |
| 839 | title = true, | 842 | title_pos = "center", |
| 840 | title_pos = "center", | 843 | zindex = 1000, |
| 841 | zindex = 1000, | 844 | -- Additional vim.wo and vim.bo options |
| 842 | -- Additional vim.wo and vim.bo options | 845 | bo = {}, |
| 843 | bo = {}, | 846 | wo = { |
| 844 | wo = { | 847 | -- winblend = 10, -- value between 0-100 0 for fully opaque and 100 for fully transparent |
| 845 | -- winblend = 10, -- value between 0-100 0 for fully opaque and 100 for fully transparent | ||
| 846 | }, | ||
| 847 | }, | 848 | }, |
| 848 | }, | 849 | }, |
| 849 | }) | 850 | }) |
| @@ -1477,6 +1478,24 @@ require("lazy").setup({ | |||
| 1477 | -- end, | 1478 | -- end, |
| 1478 | -- }, | 1479 | -- }, |
| 1479 | -- -- }}} | 1480 | -- -- }}} |
| 1481 | -- ALE {{{ | ||
| 1482 | { | ||
| 1483 | 'dense-analysis/ale', | ||
| 1484 | config = function() | ||
| 1485 | -- Configuration goes here. | ||
| 1486 | local g = vim.g | ||
| 1487 | |||
| 1488 | g.ale_ruby_rubocop_auto_correct_all = 1 | ||
| 1489 | |||
| 1490 | g.ale_linters = { | ||
| 1491 | ruby = { 'javascript', 'standard' }, | ||
| 1492 | lua = { 'lua_language_server' } | ||
| 1493 | } | ||
| 1494 | |||
| 1495 | vim.keymap.set("n", "\a", vim.cmd("ALEDisable")) | ||
| 1496 | end | ||
| 1497 | }, | ||
| 1498 | -- }}} | ||
| 1480 | }) | 1499 | }) |
| 1481 | 1500 | ||
| 1482 | -- KEYMAPS {{{ | 1501 | -- KEYMAPS {{{ |
diff --git a/vim/spell/en.utf-8.add b/vim/spell/en.utf-8.add new file mode 100644 index 0000000..d4297c4 --- /dev/null +++ b/vim/spell/en.utf-8.add | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | #eoLink/! | ||
| 2 | GeoLink/! | ||
| 3 | GeoLink | ||
| 4 | GeoLink | ||
| 5 | geo | ||
| 6 | dumbymap | ||
| 7 | Dumbymap | ||
| 8 | mapclay | ||
| 9 | EasyMDE | ||
| 10 | js | ||
| 11 | CDN | ||
| 12 | unpkg | ||
| 13 | mjs | ||
| 14 | DocLink | ||
| 15 | StoryMapJS | ||
| 16 | afterMapRendered | ||
diff --git a/vim/spell/en.utf-8.add.spl b/vim/spell/en.utf-8.add.spl new file mode 100644 index 0000000..a9f1927 --- /dev/null +++ b/vim/spell/en.utf-8.add.spl | |||
| Binary files differ | |||