From 1b37f7d7f1554f4ef4cd185c1181d54d9956b1db Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Sun, 6 Oct 2024 12:06:27 +0800 Subject: Update --- vim/init/basic.vim | 6 ++++ vim/init/config.vim | 38 +++++++++++++++++++++++-- vim/init/keymaps.vim | 3 +- vim/mini.lua | 67 +++++++++++++++++++++++++++++---------------- vim/spell/en.utf-8.add | 16 +++++++++++ vim/spell/en.utf-8.add.spl | Bin 0 -> 307 bytes 6 files changed, 102 insertions(+), 28 deletions(-) create mode 100644 vim/spell/en.utf-8.add create mode 100644 vim/spell/en.utf-8.add.spl (limited to 'vim') 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 set lazyredraw set whichwrap=b,s +" linebreak, ref: https://stackoverflow.com/questions/1204149/smart-wrap-in-vim +set breakindent +" ident by an additional 2 characters on wrapped lines, when line >= 40 characters, put 'showbreak' at start of line +set breakindentopt=shift:4,min:40,sbr +set showbreak=>> + " Tab set showtabline=2 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 @@ -215,6 +215,34 @@ augroup InitFileTypes return heading.." "..fills.." "..lines endfunc + " }}} + " Javascript {{{ + + au FileType javascript call InitJavascriptFile() + function! InitJavascriptFile() + setlocal wrap sw=2 ts=2 + + setlocal foldexpr=JsdocLevel() foldmethod=expr + + let l:jsdocPrefix = "JSDOC: " + setlocal foldtext=JSdocFoldText() + endfunc + + function! JsdocLevel() + let jsdoc = matchstr(getline(v:lnum), '^\zs\s*\/\*\*\ze') + if !empty(jsdoc) + let foldlevel = len(matchstr(jsdoc, '^\zs\s*\ze')) + 1 + return '>'.foldlevel + else + " Contents + return "=" + endif + endfunc + + function! JSdocFoldText() + return "JSDOC: ".matchstr(getline(v:foldstart + 1), '^[\* ]*\zs.*\ze') + endfunc + " }}} " HTML {{{ @@ -235,8 +263,11 @@ augroup InitFileTypes startinsert endif endfunc - autocmd FileType html,markdown nnoremap cl :call ChangeAttr("class") - autocmd FileType html,markdown nnoremap id :call ChangeAttr("id") + autocmd FileType html,markdown,javascript nnoremap cl :call ChangeAttr("class") + autocmd FileType html,markdown,javascript nnoremap id :call ChangeAttr("id") + autocmd FileType css,javascript nnoremap :let LINE=line("."):silent! %!npx standard --stdin --fix 2>/dev/null:exe LINE + autocmd FileType css,javascript nmap cdg:let LINE=line("."):%!stylelint --fix --stdin 2>/dev/null:exe LINE + autocmd FileType css,javascript set formatprg=prettier " Reload preview server autocmd BufWrite *.html,*.js,*.css call ReloadServer() @@ -279,4 +310,5 @@ augroup InitFileTypes augroup END -" }}} +let g:ale_lint_on_save = 1 +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 function! ToggleQuit() let g:quitVimWhenPressingCtrlC = !g:quitVimWhenPressingCtrlC let message = g:quitVimWhenPressingCtrlC ? "Unlock" : "Lock" + nnoremap ZZ echo message endfunction nnoremap \q :call ToggleQuit() @@ -502,7 +503,7 @@ function! CloseBufferSafely() tabclose else " Switch to proper buffer - let next_buf = get(t:bufs, bufnr('#')) ? bufnr('#') : filter(t:bufs, 'v:val != '..bufnr)[-1] + let next_buf = filter(t:bufs, 'v:val != '..bufnr)[-1] exe "b "..next_buf " exe "buffer ".g:lastbuffer 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({ require("telescope").setup({ defaults = { preview = { + filesize_limit = 0.5, filesize_hook = function(filepath, bufnr, opts) - local max_bytes = 100000 + local max_bytes = 10000 local cmd = { "head", "-c", max_bytes, filepath } require('telescope.previewers.utils').job_maker(cmd, bufnr, opts) - end + end, + timeout = 50, + highlight_limit = 1, }, mappings = { i = { @@ -644,10 +647,10 @@ require("lazy").setup({ "sF", function() require("telescope.builtin").find_files({ - follow = ture, - no_ignore = true, - hidden = true, - file_ignore_patterns = {}, + follow = ture, + no_ignore = true, + hidden = true, + file_ignore_patterns = {}, }) end, { desc = "telescope find all files" } @@ -826,24 +829,22 @@ require("lazy").setup({ lazy = false, config = function() require("which-key").setup({ - defaults = { - win = { - -- don't allow the popup to overlap with the cursor - no_overlap = false, - -- width = 1, - height = { min = 10, max = 25 }, - -- col = 0, - -- row = math.huge, - -- border = "none", - padding = { 1, 2 }, -- extra window padding [top/bottom, right/left] - title = true, - title_pos = "center", - zindex = 1000, - -- Additional vim.wo and vim.bo options - bo = {}, - wo = { - -- winblend = 10, -- value between 0-100 0 for fully opaque and 100 for fully transparent - }, + win = { + -- don't allow the popup to overlap with the cursor + no_overlap = false, + -- width = 1, + height = { min = 10, max = 25 }, + -- col = 0, + -- row = math.huge, + -- border = "none", + padding = { 1, 2 }, -- extra window padding [top/bottom, right/left] + title = false, + title_pos = "center", + zindex = 1000, + -- Additional vim.wo and vim.bo options + bo = {}, + wo = { + -- winblend = 10, -- value between 0-100 0 for fully opaque and 100 for fully transparent }, }, }) @@ -1477,6 +1478,24 @@ require("lazy").setup({ -- end, -- }, -- -- }}} + -- ALE {{{ + { + 'dense-analysis/ale', + config = function() + -- Configuration goes here. + local g = vim.g + + g.ale_ruby_rubocop_auto_correct_all = 1 + + g.ale_linters = { + ruby = { 'javascript', 'standard' }, + lua = { 'lua_language_server' } + } + + vim.keymap.set("n", "\a", vim.cmd("ALEDisable")) + end + }, + -- }}} }) -- 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 @@ +#eoLink/! +GeoLink/! +GeoLink +GeoLink +geo +dumbymap +Dumbymap +mapclay +EasyMDE +js +CDN +unpkg +mjs +DocLink +StoryMapJS +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 Binary files /dev/null and b/vim/spell/en.utf-8.add.spl differ -- cgit v1.2.3-70-g09d2