เราจะใช้ตัวแปรอย่างไรเมื่อเรียกใช้บางสิ่งผ่านnormal!
vimscript
ตัวอย่าง:
function! MyFunction(someArg)
normal! (a:someArg)l
endfunction
สิ่งนี้ควรเลื่อนsomeArg
ขั้นตอนเคอร์เซอร์ไปทางขวา
เราจะใช้ตัวแปรอย่างไรเมื่อเรียกใช้บางสิ่งผ่านnormal!
vimscript
ตัวอย่าง:
function! MyFunction(someArg)
normal! (a:someArg)l
endfunction
สิ่งนี้ควรเลื่อนsomeArg
ขั้นตอนเคอร์เซอร์ไปทางขวา
คำตอบ:
execute
ฟังก์ชั่นใช้เวลาสตริงเป็นอาร์กิวเมนต์ก็ขยายสตริงและรันมัน AA คำสั่งอดีตปกติ ดังนั้นคุณสามารถทำได้:
function! MyFunction(someArg)
execute "normal! ". a:someArg. "l"
endfunction
.
เป็นผู้ประกอบการ vimscript มาตรฐานเพื่อสตริง concatenate
execute
exe
สามารถลงไป
ดู :h :execute
แก้ไขฉันจะเพิ่มจุดเกี่ยวกับความคิดเห็นของ @Christian Brabandt .
เกี่ยวกับการเรียงต่อกันกับที่
หมอพูดว่า:
อาร์กิวเมนต์หลายตัวถูกต่อกันโดยมีช่องว่างระหว่าง เพื่อหลีกเลี่ยงพื้นที่พิเศษให้ใช้ "." โอเปอเรเตอร์เพื่อเชื่อมสตริงให้เป็นอาร์กิวเมนต์เดียว
ดังนั้นคำสั่งอาจเป็น:
execute "normal!" a:someArg . "l"
คำสั่งที่ดำเนินการจะเป็น:
normal! 2l
exe "norm!" variable