Я пытаюсь написать пользовательскую функцию янки, но не могу понять, как сделать ее неповторяемой (как обычная янка). У меня есть что-то похожее на следующее:
function! s:YankMotion(type)
if a:type ==# 'line'
normal! `[V`]y
elseif a:type ==# 'char'
normal! `[v`]y
else
echom "Unexpected selection type"
return
endif
endfunction
nnoremap y :set opfunc=<sid>YankMotion<cr>g@
Проблема заключается в том, что если вы выполняете операцию, которая повторяется (например, cw
), то что-то дергаете, а затем выполняете повтор, снова нажимая .
, вы могли бы ожидать, чтобы запустить cw
но вместо этого он пытается снова выполнить рывок.
Можно ли это исправить?