aboutsummaryrefslogtreecommitdiffhomepage
path: root/vim
diff options
context:
space:
mode:
authorHsieh Chin Fan <pham@topo.tw>2024-10-06 12:06:27 +0800
committerHsieh Chin Fan <pham@topo.tw>2024-10-06 12:06:27 +0800
commit1b37f7d7f1554f4ef4cd185c1181d54d9956b1db (patch)
tree54057c5cee90f3a93b240d77828f14f90af8c93f /vim
parenta9386c536189f2aaf38c9e2ba674a096657ca366 (diff)
Update
Diffstat (limited to 'vim')
-rw-r--r--vim/init/basic.vim6
-rw-r--r--vim/init/config.vim38
-rw-r--r--vim/init/keymaps.vim3
-rw-r--r--vim/mini.lua67
-rw-r--r--vim/spell/en.utf-8.add16
-rw-r--r--vim/spell/en.utf-8.add.splbin0 -> 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
86set lazyredraw 86set lazyredraw
87set whichwrap=b,s 87set whichwrap=b,s
88 88
89" linebreak, ref: https://stackoverflow.com/questions/1204149/smart-wrap-in-vim
90set breakindent
91" ident by an additional 2 characters on wrapped lines, when line >= 40 characters, put 'showbreak' at start of line
92set breakindentopt=shift:4,min:40,sbr
93set showbreak=>>
94
89" Tab 95" Tab
90set showtabline=2 96set 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
280augroup END 311augroup END
281 312
282" }}} 313let g:ale_lint_on_save = 1
314let 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
476function! ToggleQuit() 476function! 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
480endfunction 481endfunction
481nnoremap \q :call ToggleQuit()<CR> 482nnoremap \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/!
2GeoLink/!
3GeoLink
4GeoLink
5geo
6dumbymap
7Dumbymap
8mapclay
9EasyMDE
10js
11CDN
12unpkg
13mjs
14DocLink
15StoryMapJS
16afterMapRendered
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