call term_sendkeys(buf, getstate)
call WaitForAssert({-> assert_match('state: mSc; mode: n', term_getline(buf, 6))}, 1000)
+ " A operator is pending
+ call term_sendkeys(buf, ":call RunTimer()\<CR>y")
+ call TermWait(buf, 25)
+ call term_sendkeys(buf, "y")
+ call term_sendkeys(buf, getstate)
+ call WaitForAssert({-> assert_match('state: oSc; mode: n', term_getline(buf, 6))}, 1000)
+
+ " A register was specified
+ call term_sendkeys(buf, ":call RunTimer()\<CR>\"r")
+ call TermWait(buf, 25)
+ call term_sendkeys(buf, "yy")
+ call term_sendkeys(buf, getstate)
+ call WaitForAssert({-> assert_match('state: oSc; mode: n', term_getline(buf, 6))}, 1000)
+
" Insert mode completion (bit slower on Mac)
call term_sendkeys(buf, ":call RunTimer()\<CR>Got\<C-N>")
call TermWait(buf, 25)