ฉันสามารถเปิดไฟล์ในอินสแตนซ์ Vim ที่มีอยู่จากคำสั่งภายนอกได้หรือไม่


20

บางแอปพลิเคชันมีแนวคิดของ"เซสชัน"ซึ่งคุณสามารถเรียกใช้คำสั่งเพื่อโหลดไฟล์ในอินสแตนซ์ที่มีอยู่ของแอปพลิเคชัน

ตัวอย่างเช่นเมื่อฉันพิมพ์:

$ firefox http://vi.stackexchange.com

Firefox จะใช้กระบวนการ Firefox ที่มีอยู่อีกครั้งแทนที่จะสร้างกระบวนการใหม่

เป็นไปได้ด้วย Vim?

คำตอบ:


22

คุณต้องมี vim ที่คอมไพล์ด้วย+clientserverจากนั้นคุณสามารถใช้คำสั่งvim --servername SERVERเพื่อเริ่มต้นอินสแตนซ์ vim และvim --servername SERVER --remote FILEเปิดไฟล์ในอินสแตนซ์ที่ชื่อว่า vim


macOS เท่านั้น

MacVim ใช้งานเซิร์ฟเวอร์ตามค่าเริ่มต้นคุณสามารถใช้mvim --remote-tab-silentเพื่อเปิดไฟล์ในแท็บใหม่ในอินสแตนซ์ MacVim ที่มีอยู่ของคุณหรือmvim --remote-silentเพื่อเปิดไฟล์ในบัฟเฟอร์ใหม่ในแท็บเดียวกัน


4

ในขณะที่คำตอบ @ craigp เป็นที่ถูกต้องผมพบว่ามันสะดวกที่สุดในการเพียงแค่เพิ่ม--remote-silentโดยไม่ต้องกังวลเกี่ยวกับชื่อเซิร์ฟเวอร์(นี้ถือว่าคุณไม่ต้องการที่จะอยู่เป็นกลุ่มชื่ออินสแตนซ์)

นี่จะเป็นการเริ่มต้นเซิร์ฟเวอร์หรือใช้เซิร์ฟเวอร์หากยังไม่ได้เริ่ม

มันสามารถถูกเรียกเช่นนี้:

gvim --remote-silent '+cal cursor(line,col)' some_file

เช่น:

gvim --remote-silent '+cal cursor(102,4)' src/code.c

ฉันสิ้นสุดต้องใช้วิธีอื่นในการย้ายเคอร์เซอร์เนื่องจากการเริ่มต้นระยะไกลนี้

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