From 32af7279adb07da195c505270121cafeaeec0bc9 Mon Sep 17 00:00:00 2001 From: Andrikin Date: Mon, 3 Aug 2020 17:20:12 -0300 Subject: [PATCH 1/2] Using CmdlineLeave to disable automatically --- plugin/capslock.vim | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/plugin/capslock.vim b/plugin/capslock.vim index bd37a88..93b4951 100644 --- a/plugin/capslock.vim +++ b/plugin/capslock.vim @@ -59,25 +59,27 @@ function! s:enabled(mode) abort if a:mode == 'i' && exists('##InsertCharPre') return get(b:, 'capslock', 0) else - return maparg('a',a:mode) == 'A' + return maparg('a',a:mode) ==# 'A' endif endfunction -function! s:exitcallback() abort - if s:enabled('i') == 1 - call s:disable('i') +function! s:exitcallback(mode) abort + if s:enabled(a:mode) + call s:disable(a:mode) endif endfunction function! CapsLockStatusline(...) abort - return s:enabled('i') ? (a:0 == 1 ? a:1 : '[Caps]') : '' + return (s:enabled('i') || s:enabled('c')) ? (a:0 == 1 ? a:1 : '[Caps]') : '' endfunction augroup capslock autocmd! autocmd User Flags call Hoist('window', 'CapsLockStatusline') - autocmd InsertLeave * call s:exitcallback() + autocmd CmdlineLeave : call s:exitcallback('c') + + autocmd InsertLeave * call s:exitcallback('i') if exists('##InsertCharPre') autocmd InsertCharPre * \ if s:enabled('i') | From cb639d9738074dc3decd0ba98b52eb48b6c79fb1 Mon Sep 17 00:00:00 2001 From: Andrikin Date: Tue, 11 Jul 2023 17:17:05 -0300 Subject: [PATCH 2/2] remap: map in CommandMode --- plugin/capslock.vim | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugin/capslock.vim b/plugin/capslock.vim index 93b4951..4bd2ba1 100644 --- a/plugin/capslock.vim +++ b/plugin/capslock.vim @@ -104,6 +104,9 @@ cnoremap CapsLockDisable =disable('c') if empty(mapcheck("", "i")) imap CapsLockToggle endif +if empty(mapcheck("", "c")) + cmap CapsLockToggle +endif imap c CapsLockToggle nmap gC CapsLockToggle