From cc96870ff94afba7b0f2dc18f0209611ff7201f7 Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Thu, 1 Aug 2024 00:32:50 +0800 Subject: Update --- vim/init/basic.vim | 8 ++++++-- vim/init/config.vim | 30 ++++++++++++++++++++++----- vim/init/keymaps.vim | 58 ++++++++++++++++++++++++++-------------------------- 3 files changed, 60 insertions(+), 36 deletions(-) (limited to 'vim/init') diff --git a/vim/init/basic.vim b/vim/init/basic.vim index 17a97da..c4dfa61 100644 --- a/vim/init/basic.vim +++ b/vim/init/basic.vim @@ -9,7 +9,6 @@ " Usage: type --- for foldmark augroup filetype_vim autocmd! - execute "autocmd FileType vim :inoreabbrev --- ----------------{".."{{\" }"."}}" autocmd FileType vim setlocal foldmethod=marker foldlevel=0 augroup END @@ -56,7 +55,7 @@ set autoread autocmd FocusGained,BufEnter .* checktime " spell -set spell +set nospell set spellfile="/tmp/spell" " }}} @@ -72,6 +71,9 @@ set display=lastline set lazyredraw set whichwrap=b,s +" Tab +set showtabline=2 + " Side column set number relativenumber @@ -168,6 +170,8 @@ set foldenable " Allow fold set foldmethod=indent " Fold contents by indent set foldlevel=2 set fillchars=fold:\ ,foldopen:▽,foldsep:│,foldclose:▶ +set foldopen-=search fdo-=mark + let g:defaut_foldcolumn = "" if has('nvim') let g:defaut_foldcolumn = "auto:3" diff --git a/vim/init/config.vim b/vim/init/config.vim index e4403fb..318bc58 100644 --- a/vim/init/config.vim +++ b/vim/init/config.vim @@ -18,9 +18,9 @@ augroup TerminalSize au! function! LayoutForSmallTerminal(bound) if &lines < a:bound || g:alacritty_extra_padding - silent! set cmdheight=0 laststatus=0 showtabline=0 nowrap scrolloff=1 + silent! set laststatus=0 showtabline=0 signcolumn=0 nowrap scrolloff=1 else - silent! set cmdheight& laststatus& showtabline=2 scrolloff=3 + silent! set laststatus& showtabline& signcolumn& scrolloff& endif endfunc autocmd VimEnter,VimResized * silent call LayoutForSmallTerminal(20) @@ -148,6 +148,7 @@ augroup InitFileTypes augroup Config_Markdown au! au FileType markdown call InitMarkdown() + au FileType markdown let b:in_frontmatter = 0 function! InitMarkdown() setlocal wrap sw=2 ts=2 @@ -159,12 +160,25 @@ augroup InitFileTypes syn match DetailsEnd '^' conceal cchar=E endfunc - " Fold by heading level function! MarkdownLevel() + " For frontmatter + if v:lnum == 1 && getline(1) =~ '^---' + let b:in_frontmatter = 1 + return '>1' + endif + if b:in_frontmatter + if getline(v:lnum) =~ '^---' + let b:in_frontmatter = 0 + return '<1' + else + return '=' + endif + endif + + " Fold for heading and the following contents let hash_num = matchstr(getline(v:lnum), '^#\+') if !empty(hash_num) " HEADING - " return ">"..(len(hash_num) - 1) return len(hash_num) == 1 ? 0 : '>1' else " Contents @@ -173,8 +187,14 @@ augroup InitFileTypes endfunc function! MarkdownFoldTextHeading() + " For frontmatter + if v:foldstart == 1 && getline(v:foldstart) =~ '^---' + return '===FrontMatter===' + endif + + " For heading, foltext() let origin = split(MarkdownFoldText()[2:], ' ') - let heading = substitute(join(origin[:-3], ' '), '\#', ' ', 'g') + let heading = substitute(join(origin[:-3], ' '), '\#', ' ', 'g') let lines = join(origin[-2:], ' ')[1:-2] let fills = repeat('.', 48 - len(heading) - len(lines)) return heading.." "..fills.." "..lines diff --git a/vim/init/keymaps.vim b/vim/init/keymaps.vim index ce6cf84..a423c20 100644 --- a/vim/init/keymaps.vim +++ b/vim/init/keymaps.vim @@ -48,21 +48,6 @@ nnoremap 1 vnoremap Tz :!trans -t zh-TW -b vnoremap Te :!trans -t en-US -b -let g:alacritty_extra_padding = 0 -function! ToggleWinPadding() - if g:alacritty_extra_padding - !alacritty msg config --window-id $WINDOWID --reset - else - redir => output | hi LineNr | redir END - let bg_color = matchstr(output, 'guibg=\zs[^\s]\+\ze') - exe "hi EndOfBuffer guifg="..bg_color.." guibg="..bg_color - exe "!alacritty msg config --window-id $WINDOWID window.padding.x=300 'colors.primary.background=\"\\"..bg_color.."\"'" - endif - - let g:alacritty_extra_padding = !g:alacritty_extra_padding -endfunc -nnoremap z silent call ToggleWinPadding() - " }}} " WORKING_DIR {{{ @@ -190,6 +175,7 @@ vnoremap Y "+y " Delete mark function! DeleteMark(mark) let mark = nr2char(a:mark) + echo mark if mark =~ '[a-Z]' execute "delmarks " . mark endif @@ -214,7 +200,7 @@ function! ToggleFoldForMarks(offset) " Get list of lines which has mark let line_list = [] for info in getmarklist(bufnr()) - if match(info.mark, "[a-z]") == 1 + if info.mark =~ "[a-z]" call add(line_list, info.pos[1]) endif endfor @@ -250,8 +236,12 @@ endfunction nnoremap z' ":\call ToggleFoldForMarks("..v:count..")\" function! ChangeUnfold(downward, count) - " Only do this if foldmethod is manual or count is given - if &foldmethod != 'manual' || !a:count | return | endif + " Only do this if foldmethod is manual + if &foldmethod != 'manual' | return | endif + + " If count is not given, reverse direction + let downward = a:count ? a:downward : !a:downward + let move = a:count ? a:count : -1 " Move to fold upward/downward if downward @@ -263,13 +253,12 @@ function! ChangeUnfold(downward, count) let foldend = foldclosedend('.') " Change folding area - norm! zd - let move = (a:count ? a:count : 1) if downward let foldstart += move else let foldend -= move endif + norm! zd exe foldstart..","..foldend.."fold" " Get back to origin cursor position @@ -291,6 +280,25 @@ nnoremap S S " }}} " TERMINAL {{{ +" Use z to toggle +let g:alacritty_extra_padding = 0 +function! ToggleWinPadding() + if g:alacritty_extra_padding + !alacritty msg config --window-id $WINDOWID --reset + hi EndOfBuffer None + hi MsgArea None + else + redir => output | hi LineNr | redir END + let bg_color = matchstr(output, 'guibg=\zs[^\s]\+\ze') + exe "hi EndOfBuffer guifg="..bg_color.." guibg="..bg_color + exe "hi MsgArea guibg="..bg_color + exe "!alacritty msg config --window-id $WINDOWID window.padding.x=300 'colors.primary.background=\"\\"..bg_color.."\"'" + endif + + let g:alacritty_extra_padding = !g:alacritty_extra_padding +endfunc +nnoremap z silent call ToggleWinPadding() + " In case ALT key is not working " execute "set =\e2" " execute "set =\e1" @@ -721,17 +729,9 @@ nnoremap Tig nnoremap s TigStatus nnoremap b TigBlame -" }}} -" Tmp: Markdown items (temproray solution) {{{ - -" Toggle list item in markdown: "- [ ] XXX" -> "XXX" -> "- XXX" -> "- [ ] XXX" -" autocmd FileType markdown nnoremap i V:!sed -E '/^ *- \[.\]/ { s/^( *)- \[.\] */\1/; q; }; /^ *[^[:space:]-]/ { s/^( *)/\1- /; q; }; /^ *- / { s/^( *)- /\1- [ ] /; q; }' -" autocmd FileType markdown nnoremap I V:!sed -E 's/^( *)/\1- [ ] /' - -" Toggle task status: "- [ ] " -> "- [x]" -> "- [.] " -> "- [ ] " -" nnoremap x V:!sed -E '/^ *- \[ \]/ { s/^( *)- \[ \]/\1- [x]/; q; }; /^ *- \[\x\]/ { s/^( *)- \[\x\]/\1- [.]/; q; }; /^ *- \[\.\]/ { s/^( *)- \[\.\]/\1- [ ]/; q; }' " }}} " Tmp: Common system command {{{ + " Show date selector nnoremap dd :r !sh -c 'LANG=en zenity --calendar --date-format="\%Y.\%m.\%d" 2>/dev/null' nnoremap dD :r !sh -c 'LANG=en zenity --calendar --date-format="\%a \%b \%d" 2>/dev/null' -- cgit v1.2.3-70-g09d2