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?

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.


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.