diff options
Diffstat (limited to 'vim/init/keymaps.vim')
-rw-r--r-- | vim/init/keymaps.vim | 58 |
1 files changed, 29 insertions, 29 deletions
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 <C-g> 1<C-g> | |||
48 | vnoremap Tz :!trans -t zh-TW -b<CR> | 48 | vnoremap Tz :!trans -t zh-TW -b<CR> |
49 | vnoremap Te :!trans -t en-US -b<CR> | 49 | vnoremap Te :!trans -t en-US -b<CR> |
50 | 50 | ||
51 | let g:alacritty_extra_padding = 0 | ||
52 | function! ToggleWinPadding() | ||
53 | if g:alacritty_extra_padding | ||
54 | !alacritty msg config --window-id $WINDOWID --reset | ||
55 | else | ||
56 | redir => output | hi LineNr | redir END | ||
57 | let bg_color = matchstr(output, 'guibg=\zs[^\s]\+\ze') | ||
58 | exe "hi EndOfBuffer guifg="..bg_color.." guibg="..bg_color | ||
59 | exe "!alacritty msg config --window-id $WINDOWID window.padding.x=300 'colors.primary.background=\"\\"..bg_color.."\"'" | ||
60 | endif | ||
61 | |||
62 | let g:alacritty_extra_padding = !g:alacritty_extra_padding | ||
63 | endfunc | ||
64 | nnoremap <leader>z <Cmd>silent call ToggleWinPadding()<CR> | ||
65 | |||
66 | " }}} | 51 | " }}} |
67 | " WORKING_DIR {{{ | 52 | " WORKING_DIR {{{ |
68 | 53 | ||
@@ -190,6 +175,7 @@ vnoremap Y "+y | |||
190 | " Delete mark | 175 | " Delete mark |
191 | function! DeleteMark(mark) | 176 | function! DeleteMark(mark) |
192 | let mark = nr2char(a:mark) | 177 | let mark = nr2char(a:mark) |
178 | echo mark | ||
193 | if mark =~ '[a-Z]' | 179 | if mark =~ '[a-Z]' |
194 | execute "delmarks " . mark | 180 | execute "delmarks " . mark |
195 | endif | 181 | endif |
@@ -214,7 +200,7 @@ function! ToggleFoldForMarks(offset) | |||
214 | " Get list of lines which has mark | 200 | " Get list of lines which has mark |
215 | let line_list = [] | 201 | let line_list = [] |
216 | for info in getmarklist(bufnr()) | 202 | for info in getmarklist(bufnr()) |
217 | if match(info.mark, "[a-z]") == 1 | 203 | if info.mark =~ "[a-z]" |
218 | call add(line_list, info.pos[1]) | 204 | call add(line_list, info.pos[1]) |
219 | endif | 205 | endif |
220 | endfor | 206 | endfor |
@@ -250,8 +236,12 @@ endfunction | |||
250 | nnoremap <expr> z' ":\<C-u>call ToggleFoldForMarks("..v:count..")\<CR>" | 236 | nnoremap <expr> z' ":\<C-u>call ToggleFoldForMarks("..v:count..")\<CR>" |
251 | 237 | ||
252 | function! ChangeUnfold(downward, count) | 238 | function! ChangeUnfold(downward, count) |
253 | " Only do this if foldmethod is manual or count is given | 239 | " Only do this if foldmethod is manual |
254 | if &foldmethod != 'manual' || !a:count | return | endif | 240 | if &foldmethod != 'manual' | return | endif |
241 | |||
242 | " If count is not given, reverse direction | ||
243 | let downward = a:count ? a:downward : !a:downward | ||
244 | let move = a:count ? a:count : -1 | ||
255 | 245 | ||
256 | " Move to fold upward/downward | 246 | " Move to fold upward/downward |
257 | if downward | 247 | if downward |
@@ -263,13 +253,12 @@ function! ChangeUnfold(downward, count) | |||
263 | let foldend = foldclosedend('.') | 253 | let foldend = foldclosedend('.') |
264 | 254 | ||
265 | " Change folding area | 255 | " Change folding area |
266 | norm! zd | ||
267 | let move = (a:count ? a:count : 1) | ||
268 | if downward | 256 | if downward |
269 | let foldstart += move | 257 | let foldstart += move |
270 | else | 258 | else |
271 | let foldend -= move | 259 | let foldend -= move |
272 | endif | 260 | endif |
261 | norm! zd | ||
273 | exe foldstart..","..foldend.."fold" | 262 | exe foldstart..","..foldend.."fold" |
274 | 263 | ||
275 | " Get back to origin cursor position | 264 | " Get back to origin cursor position |
@@ -291,6 +280,25 @@ nnoremap S S<ESC> | |||
291 | " }}} | 280 | " }}} |
292 | " TERMINAL {{{ | 281 | " TERMINAL {{{ |
293 | 282 | ||
283 | " Use <leader>z to toggle | ||
284 | let g:alacritty_extra_padding = 0 | ||
285 | function! ToggleWinPadding() | ||
286 | if g:alacritty_extra_padding | ||
287 | !alacritty msg config --window-id $WINDOWID --reset | ||
288 | hi EndOfBuffer None | ||
289 | hi MsgArea None | ||
290 | else | ||
291 | redir => output | hi LineNr | redir END | ||
292 | let bg_color = matchstr(output, 'guibg=\zs[^\s]\+\ze') | ||
293 | exe "hi EndOfBuffer guifg="..bg_color.." guibg="..bg_color | ||
294 | exe "hi MsgArea guibg="..bg_color | ||
295 | exe "!alacritty msg config --window-id $WINDOWID window.padding.x=300 'colors.primary.background=\"\\"..bg_color.."\"'" | ||
296 | endif | ||
297 | |||
298 | let g:alacritty_extra_padding = !g:alacritty_extra_padding | ||
299 | endfunc | ||
300 | nnoremap <leader>z <Cmd>silent call ToggleWinPadding()<CR> | ||
301 | |||
294 | " In case ALT key is not working | 302 | " In case ALT key is not working |
295 | " execute "set <M-2>=\e2" | 303 | " execute "set <M-2>=\e2" |
296 | " execute "set <M-1>=\e1" | 304 | " execute "set <M-1>=\e1" |
@@ -722,16 +730,8 @@ nnoremap <C-t>s <Cmd>TigStatus<CR> | |||
722 | nnoremap <C-t>b <Cmd>TigBlame<CR> | 730 | nnoremap <C-t>b <Cmd>TigBlame<CR> |
723 | 731 | ||
724 | " }}} | 732 | " }}} |
725 | " Tmp: Markdown items (temproray solution) {{{ | ||
726 | |||
727 | " Toggle list item in markdown: "- [ ] XXX" -> "XXX" -> "- XXX" -> "- [ ] XXX" | ||
728 | " autocmd FileType markdown nnoremap <buffer> <leader>i V:!sed -E '/^ *- \[.\]/ { s/^( *)- \[.\] */\1/; q; }; /^ *[^[:space:]-]/ { s/^( *)/\1- /; q; }; /^ *- / { s/^( *)- /\1- [ ] /; q; }'<CR><CR> | ||
729 | " autocmd FileType markdown nnoremap <buffer> <leader>I V:!sed -E 's/^( *)/\1- [ ] /'<CR><CR> | ||
730 | |||
731 | " Toggle task status: "- [ ] " -> "- [x]" -> "- [.] " -> "- [ ] " | ||
732 | " nnoremap <leader>x V:!sed -E '/^ *- \[ \]/ { s/^( *)- \[ \]/\1- [x]/; q; }; /^ *- \[\x\]/ { s/^( *)- \[\x\]/\1- [.]/; q; }; /^ *- \[\.\]/ { s/^( *)- \[\.\]/\1- [ ]/; q; }'<CR><CR> | ||
733 | " }}} | ||
734 | " Tmp: Common system command {{{ | 733 | " Tmp: Common system command {{{ |
734 | |||
735 | " Show date selector | 735 | " Show date selector |
736 | nnoremap <leader>dd :r !sh -c 'LANG=en zenity --calendar --date-format="\%Y.\%m.\%d" 2>/dev/null'<CR><CR> | 736 | nnoremap <leader>dd :r !sh -c 'LANG=en zenity --calendar --date-format="\%Y.\%m.\%d" 2>/dev/null'<CR><CR> |
737 | nnoremap <leader>dD :r !sh -c 'LANG=en zenity --calendar --date-format="\%a \%b \%d" 2>/dev/null'<CR><CR> | 737 | nnoremap <leader>dD :r !sh -c 'LANG=en zenity --calendar --date-format="\%a \%b \%d" 2>/dev/null'<CR><CR> |