VIM Menjalankan perintah kunci dalam suatu fungsi

13

Saya memiliki fungsi, dan saya ingin menjalankan perintah kunci, tetapi saya mendapatkan kesalahan Trailing karakter:

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

Tidak menyukai <CW> <CW>

Apa yang bisa saya gunakan?

Dave
sumber

Jawaban:

20

Jawaban umum adalah menggunakan :normalperintah, seperti

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

The :executePendekatan adalah cara yang mudah dibaca untuk mendapatkan :normaluntuk mengenali karakter khusus seperti kombinasi kontrol-key. Pendekatan lainnya adalah

:normal ^W^W

di mana masing ^W- masing satu karakter dimasukkan dengan mengetik Ctrl-vCtrl-w.

jw013
sumber
Jika saya menggunakan ^Wskrip daripada dibuka dalam mode biner. Bagaimana cara menghindarinya atau haruskah saya lebih suka menggunakan :exe?
DenisKolodin
0

Gunakan fungsi feedkeys . CATATAN bahwa ^ W BUKAN "^" + "W" tetapi sebenarnya ketik "Ctrl-V Ctrl-W". Itu karakter khusus.

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