VIM Bir işlevde tuş komutu yürütme


13

Bir işlevim var ve bir tuş komutu yürütmek istiyorum, ancak sondaki karakterleri alıyorum:

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

<CW> <CW> gibi değil

Bunun yerine ne kullanabilirim?

Yanıtlar:


20

Genel cevap şu :normalkomutu kullanmaktır:

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

:executeYaklaşım elde etmek anlaşılabilir bir yol :normalkontrol tuş kombinasyonları gibi özel karakterleri tanımak için. Diğer yaklaşım

:normal ^W^W

burada her ^Wbiri yazarak eklenen bir karakterdir Ctrl-vCtrl-w.


^WBir komut dosyasında kullanırsanız , ikili modda açılır. Bunu nasıl önleyebilirim veya kullanmayı tercih etmeliyim :exe?
DenisKolodin

0

Feedkeys işlevini kullanın . ^ W "^" + "W" DEĞİLDİR, ancak aslında "Ctrl-V Ctrl-W" yazın. Bu özel bir karakter.

function! MyFunction()
  if condition
    call feedkeys("^W^W")  
  else
    :some_other_command
  endif
endfunction
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.