ฉันมีฟังก์ชั่นและฉันต้องการที่จะดำเนินการคำสั่งที่สำคัญ แต่ฉันได้รับข้อผิดพลาดตัวอักษรต่อท้าย:
function! MyFunction()
if condition
<C-W><C-W>
else
:some_other_command
endif
endfunction
ไม่ชอบ <CW> <CW>
ฉันจะใช้อะไรแทนได้บ้าง
ฉันมีฟังก์ชั่นและฉันต้องการที่จะดำเนินการคำสั่งที่สำคัญ แต่ฉันได้รับข้อผิดพลาดตัวอักษรต่อท้าย:
function! MyFunction()
if condition
<C-W><C-W>
else
:some_other_command
endif
endfunction
ไม่ชอบ <CW> <CW>
ฉันจะใช้อะไรแทนได้บ้าง
คำตอบ:
คำตอบทั่วไปคือการใช้:normal
คำสั่งเช่น
:exe "normal \<C-W>\<C-w>"
:execute
วิธีเป็นวิธีที่สามารถอ่านได้ที่จะได้รับ:normal
ในการรับรู้อักขระพิเศษเช่นการควบคุมรวมกันที่สำคัญ อีกวิธีคือ
:normal ^W^W
ซึ่งแต่ละคนเป็นตัวละครตัวหนึ่งเขียนโดยพิมพ์^W
Ctrl-vCtrl-w
ใช้ฟังก์ชั่นฟีดคีย์ โปรดทราบว่า ^ W ไม่ใช่ "^" + "W" แต่จริง ๆ แล้วพิมพ์ "Ctrl-V Ctrl-W" มันเป็นตัวละครพิเศษ
function! MyFunction()
if condition
call feedkeys("^W^W")
else
:some_other_command
endif
endfunction
^W
ในสคริปต์กว่าจะเปิดในโหมดไบนารี ฉันควรหลีกเลี่ยงสิ่งนั้นหรือ:exe
ไม่