VIM Executando um comando chave em uma função

13

Eu tenho uma função e quero executar um comando de chave, mas recebo o erro Trailing characters:

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

Não gosta do < C-W > < C-W >

O que posso usar em vez disso?

    
por Dave 31.08.2012 / 18:09

2 respostas

18

A resposta geral é usar o comando :normal , como

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

A abordagem :execute é a maneira legível de obter :normal para reconhecer caracteres especiais, como combinações de teclas de controle. A outra abordagem é

:normal ^W^W

onde cada ^W é um caractere inserido digitando Ctrl-v Ctrl-w

.

    
por 31.08.2012 / 18:28
0

Use a função feedkeys . OBSERVE que ^ W NÃO é "^" + "W", mas na verdade digita "Ctrl-V Ctrl-W". É um personagem especial.

function! MyFunction()
  if condition
    call feedkeys("^W^W")  
  else
    :some_other_command
  endif
endfunction
    
por 13.11.2016 / 16:53

Tags