VIM 在函数中执行键盘命令

VIM 在函数中执行键盘命令

我有一个函数,我想执行一个关键命令,但我收到错误尾随字符:

function! MyFunction()
  if condition
    <C-W><C-W>
  else
    :some_other_command
  endif
endfunction

它不喜欢<CW><CW>

我可以用什么来代替?

答案1

一般答案是使用命令:normal,例如

:exe "normal \<C-W>\<C-w>"

该方法是识别特殊字符(例如控制键组合):execute的可读方法。:normal另一种方法是

:normal ^W^W

其中每个^W是通过键入 插入的一个字符Ctrl-vCtrl-w

答案2

使用进给键功能。请注意,^W 不是“^”+“W”,而是实际上键入“Ctrl-V Ctrl-W”。这是一个特殊的角色。

function! MyFunction()
  if condition
    call feedkeys("^W^W")  
  else
    :some_other_command
  endif
endfunction

相关内容