From 80e09685e7b05b794f50dc60088e9462a8608cd9 Mon Sep 17 00:00:00 2001 From: Julian Prein Date: Tue, 27 Jun 2023 18:23:02 +0200 Subject: [PATCH] vim:keys: Add `macro_type` for uppercase snakecase --- .config/vim/vimrc.d/40-keys.vim | 83 +++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/.config/vim/vimrc.d/40-keys.vim b/.config/vim/vimrc.d/40-keys.vim index a154f8a..a238c53 100644 --- a/.config/vim/vimrc.d/40-keys.vim +++ b/.config/vim/vimrc.d/40-keys.vim @@ -1,3 +1,4 @@ +" vim: set foldmethod=marker: " Keybindings """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Stop highlighting search result when pressing Return nnoremap :nohlsearch @@ -358,3 +359,85 @@ endfunction vmap j call ExpandVisualSelection(1) vmap k call ExpandVisualSelection(-1) + +function! s:macro_type() + if !exists('s:macro_type') + let s:macro_type = 0 + endif + + if !s:macro_type + let s:macro_type = 1 + + " Disable on InsertLeave + au! macro_type InsertLeave * call s:macro_type() + + imap _ + imap a A + " {{{ + imap b B + imap c C + imap d D + imap e E + imap f F + imap g G + imap h H + imap i I + imap j J + imap k K + imap l L + imap m M + imap n N + imap o O + imap p P + imap q Q + imap r R + imap s S + imap t T + imap u U + imap v V + imap w W + imap x X + imap y Y + imap z Z + " }}} + else + let s:macro_type = 0 + au! macro_type + + iunmap + iunmap a + " {{{ + iunmap b + iunmap c + iunmap d + iunmap e + iunmap f + iunmap g + iunmap h + iunmap i + iunmap j + iunmap k + iunmap l + iunmap m + iunmap n + iunmap o + iunmap p + iunmap q + iunmap r + iunmap s + iunmap t + iunmap u + iunmap v + iunmap w + iunmap x + iunmap y + iunmap z + " }}} + endif +endfunction + +" Type everything uppercase and underscores instead of spaces +noremap mac call macro_type()i +augroup macro_type + au! +augroup END