gvim: แม็พคำสั่งที่ใช้ชื่อไฟล์ปัจจุบัน (%) ใน vimrc


0

ใน gVim ใน windows ฉันต้องการแมปคำสั่งในไฟล์ vimrc ที่ใช้ไฟล์ปัจจุบัน (%) ฉันเขียนสิ่งที่ชอบ:

map <F5> !mycommand %

แต่เมื่อ gVim ทำการโหลดครั้งแรกมันจะเรียกใช้ vimrc และบอกว่าไม่สามารถหาไฟล์ปัจจุบันได้เนื่องจากยังไม่ได้เปิด ฉันจะแมปสิ่งนี้ใน vimrc ได้อย่างไร แต่ทำให้มันแยกคำสั่ง% เฉพาะเมื่อฉันกด F5 (หลังจากที่ฉันเปิดไฟล์)

ขอบคุณ

คำตอบ:


2

คุณสามารถทำได้

map <F5> !mycommand shellescape(expand('%'))<CR>

shellescape()ทำให้ Escape อักขระพิเศษทั้งหมดในสตริง (ช่องว่าง ex)
expand()ขยายสตริงในกรณีนี้ชื่อไฟล์ปัจจุบัน

อย่างไรก็ตามแผนที่ควรได้รับการแยกวิเคราะห์เมื่อแผนที่ถูกดำเนินการ อาจเกิดขึ้นหากคุณมี autocmd ที่ทำงาน<F5>หรืออาจเกิดขึ้นหากคุณใช้ที่mapอื่นและได้รับการดำเนินการ มันจะเป็นการดีกว่าถ้าคุณใช้แผนที่เวอร์ชัน noremap ถ้าคุณไม่ต้องการการแมปแบบเรียกซ้ำ


ปัญหาคือฉันใช้ท่อเมื่อฉันไม่ควรมีดังนั้นจึงถูกดำเนินการต่อไป ...
yoki
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.