อะไรคือความแตกต่างระหว่าง MacVim และ Vim ปกติ?


216

ฉันค่อนข้างใหม่สำหรับ OS X แต่ฉันคุ้นเคยกับ Vim จากการใช้ในระบบ * nix ต่างๆ ฉันเคยเห็นหลายคนแนะนำให้ใช้ MacVim บน Vim ในเทอร์มินัล ใครสามารถบอกฉันได้ว่าความแตกต่างระหว่าง MacVim และ Vim ปกติคืออะไร?


2
อาจจะมีการทำกับแม็ keybindings มิตร (Ctrl VS ปุ่มคำสั่ง)
ldog

คำตอบ:


214

MacVimเป็นเพียงกลุ่ม ทุกสิ่งที่คุณเคยทำใน Vim จะทำงานในลักษณะเดียวกันใน MacVim

MacVim นั้นรวมอยู่ในระบบปฏิบัติการทั้งหมดมากกว่า Vim ใน Terminal หรือแม้แต่ GVim ใน Linux มันเป็นไปตามอนุสัญญาหลายฉบับของ Mac OS X

หากคุณทำงานกับแอพ GUI เป็นหลัก ( เช่น YummyFTP + GitX + Charles ) คุณอาจชอบ MacVim

หากคุณทำงานกับแอพพลิเคชั่น CLI เป็นหลัก (เช่น ssh + svn + tcpdump) คุณอาจชอบเสียงเรียกเข้าในเทอร์มินัล

การเข้าและออกจากอาณาจักรหนึ่ง (CLI) สำหรับอีกอัน (GUI) และในทางกลับกันอาจเป็น "แพง"

ฉันใช้ทั้ง MacVim และ Vim ขึ้นอยู่กับงานและบริบท: ถ้าฉันอยู่ใน CLI-land ฉันจะพิมพ์vim filenameและถ้าฉันอยู่ใน GUI-land ฉันจะเรียกใช้ Quicksilver และเปิดตัว MacVim

เมื่อฉันเปลี่ยนจาก TextMate ฉันชอบความจริงที่ว่า MacVim รองรับทางลัดปกติเกือบทั้งหมดที่ผู้ใช้ Mac คุ้นเคย ฉันได้เพิ่ม TextMate ที่เป็นของตัวเองบางตัว แต่เนื่องจากฉันทำงานในหลาย ๆ สภาพแวดล้อมฉันจึงบังคับตัวเองให้เรียนรู้วิธีการใช้งาน ตอนนี้ฉันใช้ทั้ง MacVim และ Vim ในลักษณะเดียวกัน การใช้รายการใดรายการหนึ่งเป็นเพียงคำถามบริบทสำหรับฉัน

เช่นเดียวกับ El Isra กล่าวว่าค่าเริ่มต้น (CLI) ใน OS X นั้นล้าสมัยเล็กน้อย คุณสามารถติดตั้งเวอร์ชันล่าสุดผ่านMacPortsหรือคุณสามารถติดตั้ง MacVim และเพิ่มชื่อแทนลงใน.profile:

alias vim='/path/to/MacVim.app/Contents/MacOS/Vim'

เพื่อให้เป็นกลุ่มเดียวกันใน MacVim และ Terminal.app

ความแตกต่างอีกอย่างก็คือชุดสีที่ยอดเยี่ยมมีให้เลือกหลายแบบใน MacVim แต่ดูน่ากลัวใน Terminal.app ซึ่งรองรับเฉพาะ 8 สี (+ ไฮไลท์) แต่คุณสามารถใช้iTermซึ่งสามารถตั้งค่าให้รองรับ 256 สีแทน ของเทอร์มินัล

ดังนั้น…โดยพื้นฐานแล้วคำแนะนำของฉันคือใช้ทั้งคู่

แก้ไข:ฉันไม่ได้ลอง แต่ Terminal.app เวอร์ชันล่าสุด (ใน 10.7) ควรสนับสนุน 256 สี ฉันยังทำงานที่ 10.6.x อยู่ดังนั้นฉันจะยังใช้ iTerm2 อยู่พักหนึ่ง

แก้ไข:วิธีที่ดียิ่งขึ้นในการใช้งาน CLI ของ MacVim ในเชลล์ของคุณคือการย้ายmvimสคริปต์ที่มาพร้อมกับ MacVim ที่ใดที่หนึ่งในของคุณ$PATHและใช้คำสั่งนี้:

$ mvim -v

แก้ไข:ใช่แล้ว Terminal.app รองรับ 256 สี ดังนั้นหากคุณไม่ต้องการคุณสมบัติขั้นสูงของ iTerm2 คุณสามารถใช้เทอร์มินัลอีมูเลเตอร์เริ่มต้นได้อย่างปลอดภัย


82
Homebrew เป็นตัวจัดการแพคเกจที่ไม่เจ็บปวดกับ macports เมื่อติดตั้ง homebrew อย่างเรียบง่ายbrew install macvimและคุณตั้งค่าไว้ mxcl.github.com/homebrew
Greg K

3
+1 สำหรับโฮมบรูว์ ฉันมีวิธีที่ดีกว่ากับการชงด้วยโชค แม้ว่า macports ยังคงมีแพ็คเกจมากกว่า homebrew
Chev

2
@ Greg เป็นวิธีที่ทำให้การถ่ายภาพยากขึ้น sudo port install macvim
pellucide

1
@pellucide แน่นอนการติดตั้งหนึ่งแพ็คเกจไม่ได้เจ็บปวดอีก แต่ IMHO จะจัดการการพึ่งพาและแพ็คเกจเริ่มต้นของระบบปฏิบัติการเทียบกับแพ็คเกจที่ติดตั้งไว้เป็นอย่างมากใน Homebrew นอกจากนี้sudoไม่จำเป็นต้องใช้ในภาษาฮีบรู
Roy Tinker

12

เหตุผลหนึ่งที่ทำให้ฉันเปลี่ยนมาใช้ MacVim นั้นคุ้มค่า: Yank ใช้คลิปบอร์ดของระบบ

ในที่สุดฉันก็สามารถคัดลอกวางระหว่าง MacVim บนเทอร์มินัลและส่วนที่เหลือของแอปพลิเคชันของฉัน


13
คุณยังสามารถใช้การ*ลงทะเบียนใน terminal VIM เพื่อดึงไปยังคลิปบอร์ดของระบบ IMO ไหนดีกว่าเพราะส่วนตัวแล้วฉันไม่ต้องการซิงค์กับคลิปบอร์ดระบบของฉัน ดังนั้นใน VIM เมื่อยกตัวอย่างเช่นใช้"*yyเพื่อคัดลอกไปยังคลิปบอร์ด
ลุคเดวิส

1
vim.wikia.com/wiki/Accessing_the_system_clipboard - สิ่งที่คุณต้องทำคือเพิ่มบรรทัดใน. vimrc ของคุณเพื่อให้สิ่งนี้เป็นค่าเริ่มต้นเช่นกัน
Jim Deville

1
หากคุณต้องการดึงไปยังคลิปบอร์ดใน terminal vim เพียงเพิ่ม+ตัวอย่างเช่นถ้าคุณต้องการคัดลอกเนื้อหาทั้งหมดไปยังคลิปบอร์ด:%y+
smallwat3r

3

น่าเสียดายที่ด้วย "mvim -v" หน้าต่าง ALT plus arrow ยังคงไม่ทำงาน ฉันไม่พบวิธีการเปิดใช้งาน :-(


ขอบคุณสำหรับmvimคำสั่งฉันติดตั้ง MacVim ผ่าน HomeBrew แต่ไม่รู้ว่ามีคำสั่ง symlinked เริ่มต้น ขอบคุณ!
Roy Tinker

1

มันคือทั้งหมดที่เกี่ยวกับการผูกคีย์ที่หนึ่งสามารถทำได้จากการกำหนดค่า. vrrc เท่าที่คลิปบอร์ดเป็นห่วงคุณสามารถใช้:set clipboard unnamedและดึงจากกลุ่มจะไปที่คลิปบอร์ดของระบบ อย่างไรก็ตามไม่ว่าคุณจะใช้วิธีไหนฉันแนะนำให้ใช้vimrc config นี้มันมีปลั๊กอินและการเชื่อมโยงจำนวนมากซึ่งจะทำให้ประสบการณ์ของคุณราบรื่น

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