VIM在功能中执行键盘命令


13

我有一个函数,我想执行一个键盘命令,但出现错误尾随字符:

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

它不喜欢<CW> <CW>

我该怎么用呢?

Answers:


20

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

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

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

:normal ^W^W

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


如果我^W在脚本中使用,它将以二进制模式打开。如何避免这种情况,还是我更喜欢使用:exe
DenisKolodin

0

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

function! MyFunction()
  if condition
    call feedkeys("^W^W")  
  else
    :some_other_command
  endif
endfunction
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.