NeoVim:在:terminal中运行命令后移动光标



我有一个执行git diff的函数,在调用gitdiff之后,我希望在终端窗口中模拟以下按键:

  • G移动到文件末尾
  • a附加
  • q<cr>键入q退出"终端滚动模式",然后进入
  • gg返回到文件顶部

代码:

function GitDiff()
terminal git diff --word-diff %
normal Gaq<Esc>gg
endfunction
:nmap <leader>t :call GitDiff()<cr>

然而,按键似乎并没有按预期执行。我想知道它是否需要延迟来等待终端命令完成执行?

我想这就是你想要的

function GitDiff()
terminal git diff --word-diff %
call feedkeys("Gag<Esc>gg")
endfunction
nmap <leader>t :call GitDiff()<cr>

我将normal Gaq<Esc>gg替换为对feedkeys((的调用。

:h feedkeys

最新更新