एक समारोह में एक महत्वपूर्ण आदेश VIM निष्पादन


13

मेरे पास एक फ़ंक्शन है, और मैं एक प्रमुख कमांड निष्पादित करना चाहता हूं, लेकिन मुझे त्रुटि ट्रेलिंग वर्ण मिलते हैं:

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

यह <CW> <CW> को पसंद नहीं करता है

मैं इसके बजाय क्या उपयोग कर सकता हूं?

जवाबों:


20

सामान्य उत्तर :normalकमांड का उपयोग करना है , जैसे

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

:executeदृष्टिकोण पाने के लिए पठनीय तरीका है :normalनियंत्रण कुंजी संयोजन की तरह विशेष वर्णों की पहचान करने के लिए। अन्य दृष्टिकोण है

:normal ^W^W

जहाँ प्रत्येक ^Wटाइप करके डाला गया एक वर्ण है Ctrl-vCtrl-w


अगर मैं ^Wबाइनरी मोड में खुलने की तुलना में स्क्रिप्ट का उपयोग करता हूं । इससे कैसे बचें या क्या मुझे उपयोग करना पसंद करना चाहिए :exe?
डेनिसकोलोडिन

0

फीडकी फ़ंक्शन का उपयोग करें । ध्यान दें कि ^ W "नहीं" ^ "+" W है, लेकिन वास्तव में "Ctrl-V Ctrl-W" टाइप करें। यह एक विशेष चरित्र है।

function! MyFunction()
  if condition
    call feedkeys("^W^W")  
  else
    :some_other_command
  endif
endfunction
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.