คุณจะเปรียบเทียบบรรณาธิการเหล่านี้อย่างไร? ข้อดีและข้อเสียของแต่ละข้อคืออะไร?
[ หมายเหตุ ] สิ่งนี้ไม่ได้มีไว้สำหรับผู้ที่ "เกลียดชังและรักอีกคน" หรือผู้ที่ไม่ได้ใช้ทั้งคู่
คุณจะเปรียบเทียบบรรณาธิการเหล่านี้อย่างไร? ข้อดีและข้อเสียของแต่ละข้อคืออะไร?
[ หมายเหตุ ] สิ่งนี้ไม่ได้มีไว้สำหรับผู้ที่ "เกลียดชังและรักอีกคน" หรือผู้ที่ไม่ได้ใช้ทั้งคู่
คำตอบ:
ฉันใช้ทั้งคู่แม้ว่าจะต้องเลือกอันใดอันหนึ่งฉันก็รู้ว่าจะเลือกอันไหน ถึงกระนั้นฉันจะพยายามทำการเปรียบเทียบวัตถุประสงค์ในประเด็นสองสามประเด็น
ใช้ได้ทุกที่? หากคุณเป็นผู้ดูแลระบบมืออาชีพที่ทำงานกับระบบ Unix หรือผู้ใช้ระดับสูงในอุปกรณ์ฝังตัว (เราเตอร์สมาร์ทโฟนที่มี Busybox, ... ) คุณจำเป็นต้องรู้ vi (ไม่ใช่ Vim) เพราะมันมีอยู่ในระบบ Unix ทั้งหมดและส่วนใหญ่ ระบบที่เหมือน Unix ไม่ว่าจะเป็นเดสก์ท็อปเซิร์ฟเวอร์หรือฝังตัว สำหรับผู้ใช้ทั่วไปอาร์กิวเมนต์นี้ไม่เกี่ยวข้อง: Emacs สามารถใช้งานได้ง่ายสำหรับระบบปฏิบัติการเดสก์ท็อป / เซิร์ฟเวอร์ทุกเครื่องและเนื่องจากรองรับการแก้ไขจากระยะไกลจึงเพียงพอที่จะใช้ในเครื่องเดสก์ท็อปของคุณ
ป่อง? Emacs เคยยืนอย่างตลกขบขันสำหรับ“ แปดเมกะไบต์และการแลกเปลี่ยนอย่างต่อเนื่อง” ตอนนี้บนเครื่องของฉัน Google Chrome ต้องการ RAM ต่อแท็บเท่าที่ Emacs ทำเพื่อเปิดไฟล์ 100 ไฟล์และฉันจะไม่พูดถึง Firefox ด้วยซ้ำ ในศตวรรษที่ 21 Emacs ขยายตัวเป็นเพียงตำนาน
คุณสมบัติการขยายตัวไม่เป็นปัญหาเช่นกัน ถ้าคุณไม่ใช้มันคุณก็ไม่จำเป็นต้องรู้ว่ามันอยู่ตรงนั้น คุณลักษณะของ Emacs ไม่ควรนำมาใช้เมื่อคุณไม่ได้ใช้งาน
เวลาเริ่มต้น : ผู้เสนอ Vi (m) บ่นเกี่ยวกับเวลาเริ่มต้นของ Emacs ใช่ Emacs ช้าที่จะเริ่มต้นขึ้น แต่นี้ไม่ได้เป็นเรื่องใหญ่: คุณเริ่ม Emacs emacsclientหนึ่งครั้งต่อเซสชั่นจากนั้นเชื่อมต่อกับกระบวนการทำงานที่มี ดังนั้นการเริ่มต้นที่ช้าของ Emacs นั้นส่วนใหญ่จะเป็นตำนาน
มีข้อยกเว้นประการหนึ่งคือเมื่อคุณลงชื่อเข้าใช้เครื่องระยะไกลและต้องการแก้ไขไฟล์ที่นั่น การเริ่มต้น Emacs ระยะไกล (ปกติ) ช้ากว่าการเริ่ม Vim ระยะไกล ในบางสถานการณ์คุณสามารถทำให้ Emacs ทำงานภายในหน้าจอ นอกจากนี้คุณยังสามารถแก้ไขไฟล์ระยะไกลได้จากภายใน Emacs แต่มันจะหยุดการไหลหากคุณอยู่ในเซสชัน ssh ในเทอร์มินัล (ตั้งแต่ XEmacs 21 หรือ GNU Emacs 23 คุณสามารถเปิดหน้าต่าง Emacs จากอินสแตนซ์ X ที่กำลังรันอยู่ภายในเทอร์มินัล)
เมื่อหมุนโต๊ะฉันสังเกตเห็นว่า Vim ใช้เวลาโหลดนานกว่า Emacs ( vim -u /dev/nullvs. emacs -q) อย่างเห็นได้ชัด เป็นที่ยอมรับว่าเป็นแพลตฟอร์มแปลก (Cygwin)
โค้งการเรียนรู้เริ่มต้น:สิ่งนี้แตกต่างกันไปในแต่ละบุคคล กราฟของ Michael Mrozekทำให้ฉันหัวเราะเบา ๆ อย่างจริงจังฉันยอมรับว่าโค้งการเรียนรู้ของ Vim เริ่มสูงชันชันกว่าบรรณาธิการอื่น ๆ ถึงแม้ว่าสิ่งนี้สามารถลดลงได้ด้วยการใช้ gvim
เนื่องจากฉันได้กำจัดเทพนิยายของ Emacs สองสามชุดให้ฉันปัดเป่าตำนาน vi: ตัวช่วยแก้ไขไม่ยากหรือเจ็บปวดที่จะใช้ ใช้เวลาเล็กน้อยนิสัย แต่หลังจากที่ในขณะที่มันรู้สึกเป็นธรรมชาติมาก ถ้าฉันจะออกแบบ vi (m) ใหม่ฉันจะใช้โหมดต่อไป
เส้นโค้งการเรียนรู้แบบ Asymptotic:ทั้ง Vim และ Emacs มีคุณสมบัติมากมายและคุณจะค้นพบสิ่งใหม่ ๆ หลังจากใช้มาหลายปี
ผลผลิต : นี่เป็นหัวข้อที่ยากมาก ผู้เสนอ vi (m) ยืนยันว่าคุณสามารถทำทุกอย่างได้โดยไม่ต้องออกจากแถวบ้านและทำให้คุณมีประสิทธิภาพมากขึ้นเมื่อคุณต้องการมากที่สุด ผู้สนับสนุนของ Emacs ตอบโต้ว่า Emacs มีคำสั่งจำนวนมากที่ไม่ได้ใช้บ่อยดังนั้นอย่ารับประกันการผูกกุญแจ แต่จะสะดวกสบายเมื่อคุณต้องการ ( จำเป็นต้องอ้างอิง xkcd )
ความเห็นส่วนตัวของฉันอยู่ที่ Emacs ในที่สุดชนะจนกว่าคุณจะมีความพิการพิมพ์ (และแม้แล้วคุณสามารถกำหนดค่า Emacs ที่จะต้องใช้คีย์ลำดับเท่านั้นและไม่รวมกันเช่นCtrlตัวอักษร +) ปุ่มแถวบ้านเป็นสิ่งที่ดี แต่พวกมันมักจะไม่ค่อยชนะเพราะคุณต้องเปลี่ยนโหมด ฉันไม่คิดว่า Vim สามารถทำอะไรได้อย่างมีนัยสำคัญ มีประสิทธิภาพมากกว่า Emacs ในขณะที่การสนทนาเป็นจริง
Customizability : บรรณาธิการทั้งสองเป็นโปรแกรมและมีเนื้อหาที่ครอบคลุมของแพคเกจสำหรับทั้งสอง อย่างไรก็ตาม Vim เป็นเครื่องมือแก้ไขที่มีภาษามาโคร Emacs เป็นบรรณาธิการที่เขียนด้วย Lisp พร้อมคำศัพท์เฉพาะเจาะจง Emacs ชนะอย่างน่าทึ่งเมื่อคุณพยายามทำสิ่งที่ผู้เขียนไม่ได้คิด สิ่งนี้ไม่ได้เกิดขึ้นทุกวัน แต่มันสะสมมานานหลายปี
มากกว่าบรรณาธิการ : Vim เป็นเครื่องมือแก้ไข Emacs ไม่ได้เป็นเพียงเครื่องมือแก้ไขเท่านั้น แต่ยังเป็น IDE ผู้จัดการไฟล์ตัวจำลองเทอร์มินัลเว็บเบราว์เซอร์ไคลเอนต์อีเมลไคลเอนต์ข่าว ... ไม่ว่าจะเป็นเรื่องดีหรือเรื่องเลวก็เป็นเรื่องถกเถียงกัน แต่คุณสามารถใช้ Emacs เป็นเพียงเครื่องมือแก้ไข (ดูที่ "ฟีเจอร์ bloat" ด้านบน)
ในฐานะที่เป็น IDE : ทั้ง Vim และ Emacs รองรับภาษาการเขียนโปรแกรมจำนวนมากและรูปแบบข้อความอื่น ๆ นอกเหนือจากพื้นฐานเช่นการระบายสีประโยคและการเยื้องอัตโนมัติทั้งสองมีคุณสมบัติ IDE ขั้นสูงเช่นการค้นหาข้ามอ้างอิงรหัสและเอกสารช่วยแทรกและ refactoring การควบคุมเวอร์ชันรวมและความสามารถในการเริ่มต้นการรวบรวมและข้ามไปที่ข้อผิดพลาดแรก
หนึ่งโดเมนที่ Emacs ดีกว่า Vim คือการโต้ตอบกับกระบวนการย่อยแบบอะซิงโครนัส นั่นคือเมื่อคุณเริ่มต้นการคอมไพล์แบบยาวและต้องการทำอย่างอื่นภายในอินสแตนซ์ตัวแก้ไขเดียวกันในขณะที่คอมไพเลอร์กำลังปั่น หรือเมื่อคุณต้องการโต้ตอบกับRead-eval-print ลูป - Emacs เปล่งประกายที่นี่จริงๆ Vim มีแฮ็คเฉพาะที่เสนอ อย่างไรก็ตามทางแยกใหม่ของกลุ่มNeovimได้พิสูจน์แล้วว่าได้แก้ไขปัญหานี้และใช้งานการแก้ไขข้อผิดพลาดอื่น ๆ ที่ไม่ได้นำมาใช้ในสต็อกกลุ่ม
ฉันจะโพสต์สิ่งที่ฉันคิดว่าเป็นประโยชน์หลักของแต่ละคน:
Emacs มีส่วนขยายเพิ่มเติมอีกมากเพื่อให้คุณทำงานที่เกี่ยวข้องกับโปรแกรมแก้ไขข้อความอย่างคลุมเครือเท่านั้นเช่นการเรียกดูระบบไฟล์หรือการล้อเล่นกับการควบคุมเวอร์ชันและส่วนขยายที่ไม่เกี่ยวข้องกับโปรแกรมแก้ไขข้อความเช่นการอ่าน RSS ฟีด หากคุณต้องการสภาพแวดล้อมแทนที่จะเป็นแค่เครื่องมือแก้ไขข้อความ Emacs ก็จะดีกว่า Vim ฉันยังคิดว่า Emac นั้นง่ายต่อการเรียนรู้มากแม้ว่าคุณจะมีบางคนเชื่อว่า:
โดยเฉพาะอย่างยิ่งฉันคิดว่าผู้ใช้มือใหม่จะเร็วกว่าผู้ใช้มือใหม่
ในทางกลับกันเสียงเรียกเข้านั้นเร็วขึ้นอย่างปฏิเสธไม่ได้ ดูเหมือนว่านี่เป็นส่วนสำคัญของการโต้แย้ง แต่ในความคิดของฉันไม่มีการแข่งขันเลย ฉันคิดว่าตัวเองเป็นผู้ใช้ Emacs ที่คล่องแคล่วและฉันไม่ตรงกับคนสองคนที่ฉันรู้ว่ามีความรู้เท่ากันกับ Vim ปัญหาคือจำนวนคนที่มีความชำนาญใน Vim เพียงพอที่จะเร็วขนาดเล็กอย่างไม่น่าเชื่อ (จากคนประมาณ 30 คนที่ฉันคุยกับผู้ที่ใช้ Vim เป็นประจำฉันคิดว่ามีเพียงคนเดียวที่ยอดเยี่ยมมาก) มีช่องว่างขนาดใหญ่ระหว่างการเพิ่มความเร็วที่เป็นไปได้กับการเพิ่มความเร็วจริงที่คุณได้รับ ผู้ใช้ Emacs กำลังจะเร็วเกือบเท่ากับ 99% ของผู้ใช้ Vim และ (ดังที่ฉันได้กล่าวไว้ในส่วนของ Emacs) การเริ่มต้นผู้ใช้ Emacs อาจจะเร็วกว่าผู้ใช้ Vim เริ่มต้น
มีviอยู่ในทุกระบบยูนิกซ์ (หรือเกือบ) แต่คุณไม่สามารถพูดได้เกี่ยวกับการแก้ไขอื่น ๆ นี่คือเหตุผล # 1 imo เพื่อเรียนรู้และทำความคุ้นเคยกับvi(โปรดทราบ 'vi' ไม่ใช่ 'vim') ฉันไม่เคยเห็น Emacs มาใช้ในการติดตั้งเริ่มต้น
ฉันไม่ได้บอกว่าอย่าใช้ Emacs หรือนี่เป็นเหตุผลเดียวที่ใช้ Vim แต่เมื่อคุณต้องการใช้ระบบ Unix ที่ไม่ใช่ของคุณ ... viเป็นส่วนหนึ่งของภาษาสากล
vimใช้ แต่ฉันมักจะพบว่ามันยากที่จะใช้viมากที่สุดเพราะปุ่มวางสาย (เป็นกลุ่มสนับสนุน แต่ vi ไม่ได้หรืออย่างน้อยไม่ได้โดยเริ่มต้น)
nanoฉันจะพบกับ ijkloOah ทั้งหมดในไฟล์ของฉัน ... จนกว่าฉันจะรู้ว่าฉันไม่สามารถใช้สิ่งเหล่านี้เพื่อนำทางได้ ฉันไม่ได้ใช้ปุ่มลูกศรเพื่อนำทาง
vim:)
ฉันคิดว่าพวกเขาทั้งคู่ยอดเยี่ยม ฉันคิดว่าอย่างใดอย่างหนึ่งสามารถทำอะไรก็ได้ที่คุณสามารถจินตนาการและพวกเขาทั้งปรับแต่งได้ดังนั้นเมื่อคุณเสร็จสิ้นการกำหนดเองพวกเขาทั้งสองเป็นสิ่งที่คุณต้องการให้พวกเขาเป็นอะไรไม่มากหรือน้อย
Emacs มีความโดดเด่นในการเข้าใกล้ฉัน (แม้ว่าจะยังไม่เป็นไปตาม) กับมาตรฐานการใช้งานและความสอดคล้องสำหรับ ISO / IEC สำหรับส่วนต่อประสานผู้ใช้และดังนั้นจึงไม่เล่นเล่ห์เหลี่ยมกับ "สัญชาตญาณ" ของคุณ อายุการใช้งานของสัญชาตญาณที่คุณพัฒนาการทำงานกับโปรแกรมอื่นจะไม่ทำงานกับคุณ
Vim เป็นรุ่นที่แตกต่างอย่างสิ้นเชิงและในหลาย ๆ ด้านมันเหนือกว่าของมันเองในกรณีที่อาศัยลำดับ Cntrl / Alt น้อยกว่าและแทนที่จะใช้โหมดของมันแทนการใช้โหมดช่วยให้คุณสามารถเรียงลำดับแถวบ้านและพิมพ์ได้ ได้เร็วขึ้น แต่เสียงเรียกเข้านั้นมีความเป็นเอกลักษณ์และถ้าคุณไม่ติดตั้งซอฟต์แวร์ที่มาพร้อมกับสิ่งผิดปกติ (เช่น Vimperator, Jumanji / Zathura ฯลฯ ) สัญชาตญาณที่คุณพัฒนาจะทำงานกับ vim จะไม่ข้ามไปยังโปรแกรมอื่นและในทางกลับกัน ที่กล่าวว่าฉันได้ตัดสินเป็นกลุ่มตัวเอง คุณจะต้องตัดสินใจไม่ช้าก็เร็วไม่ว่าจะดีขึ้นหรือแย่ลงเพราะมันยากที่จะฝึกฝนทั้งสองอย่าง
ฉันใช้ทั้งสองอย่างสม่ำเสมอ ฉันดู Emacs เป็น "live in" editor ในขณะที่ฉันใช้ Vim เพื่อทำงานที่รวดเร็วและรวดเร็ว ผิวเผิน Emacs มีเลือดฝาดมากกว่า Vim ดังนั้นมันจึงไม่ค่อยสะดวกในการ "Fire up" ในฐานะ Vim แต่ฉันก็พบว่าปรัชญาของส่วนต่อประสานผู้ใช้จากที่หนึ่งไปยังอีกที่สนับสนุนกระบวนทัศน์นี้ Emacs นั้นถูกสร้างขึ้นมาเพื่อให้คุณเข้าไปอยู่ข้างในสร้างสิ่งที่ดีและสะดวกสบายดังนั้นคุณไม่ต้องออกไปไหนในขณะที่เสียงเรียกเข้าเป็น "Unixy" และมองว่าตัวเองเป็นส่วนหนึ่งของสายพานเครื่องมือที่ดีกว่า
หลายคนหนีจาก Emacs เนื่องจากความเชื่อมั่นอย่างหนักในเรื่องของบัคกี้แต่นี่เป็นเหตุผลที่โง่เขลาสำหรับฉัน พลังที่แท้จริงที่ Emacs มีต่อ Vim นั้นสามารถปรับแต่งได้และด้วยพลังของ Viper และอื่น ๆ นี่ไม่ใช่ปัญหาจริงๆ แน่นอน Vim-Script มีระดับการปรับแต่งของตัวเองและถ้าพูดว่าภาษาที่คุณโปรดปรานไม่ได้ถูกจัดเตรียมไว้พร้อมปากกาเน้นข้อความที่เหมาะสมคุณสามารถปรุงได้หนึ่งอัน ท้ายที่สุดคุณสามารถทำอะไรได้มากเล่นกับมันมากขึ้น มีเพียงไม่เครื่องมือเช่นgnusหรือโหมด orgใน Vim เพื่อชื่อไม่กี่ โดยสรุปแล้ว Emacs ไม่ได้เป็นเพียงเครื่องมือแก้ไข แต่เป็นระบบปฏิบัติการที่พระเจ้าทรงสาปแช่ง
สำหรับการจัดการกับข้อความฉันจะบอกว่ามันเหมือนกันเสมอ
ฉันจะใส่ค่า $ 0.02 ของฉันเพราะฉันใช้เวลาไม่กี่ปีโดยใช้ emacs และ XEmacs จากนั้นก็ย้ายไปที่กลุ่ม เพื่อความเป็นธรรมฉันใช้ vi จริง ๆ ประมาณปี 1990-1992 ดังนั้นฉันจึงคุ้นเคยกับส่วนต่อประสานผู้ใช้
Emacs
Emac ได้รับการอธิบายว่าเป็นระบบเสียงกระเพื่อมที่เพิ่งเกิดขึ้นเพื่อใช้ในการเขียนบรรณาธิการและมีความจริงในเรื่องนี้ คุณสามารถใช้อะไรก็ได้ที่คุณต้องการด้วย elisp หากคุณสนใจที่จะใช้เวลาทำความเข้าใจกับสภาพแวดล้อม ฉันไม่สามารถบอกได้ว่าฉันจะได้รู้ว่ามันดี แต่ฉันก็ทำสิ่งที่ดีเกินจริง Emacs และ Xemacs ไม่สามารถใช้งานร่วมกันได้ในระดับนี้ดังนั้นสคริปต์ของบุคคลที่สามอาจทำงานได้ แต่ไม่ทำงานอีกอัน
มีการตั้งข้อสังเกตว่า RMS และแฮ็กเกอร์ Emacs ที่โดดเด่นอื่น ๆ ต้องออกจากการเขียนโปรแกรมเนื่องจากปัญหากับ OOS ที่ Bill Joy, Bram Moolenaar และผู้ทรงคุณวุฒิอื่น ๆ อีกมากมายยังคงอยู่ที่นี่ Emacs นั้นยากที่นิ้วก้อยของคุณ
Emacs เป็นระบบคาทอลิกมากขึ้นกว่า vi และถูกมองว่าเป็นตัวอย่างที่เป็นที่ยอมรับของห่อซอฟแวร์ พร้อมกับ Netscape นี่เป็นหนึ่งในการสนับสนุนของ jwzเพื่อพิสูจน์กฎหมายนี้
สิ่งหนึ่งที่ไม่เหมือนใครที่ฉันทำกับ xemacs ครั้งหนึ่งก็คือให้มันทำงานบนเครื่องและเปิดเซสชัน x บน xterminal (อันที่จริงเรียกว่า Sun 3/60 เก่า repurposed อาทิตย์) ในห้องอื่นกับบัฟเฟอร์เดียวกันในอินสแตนซ์ที่ทำงานเดียวกัน
จุดเด่น:สามารถขยายได้มีประสิทธิภาพมากกว่าตัวแก้ไขอื่น ๆ ที่มนุษย์รู้จักรวมเข้ากับผู้ใหญ่ด้วยเครื่องมือการเขียนโปรแกรมซอฟต์แวร์ฟรีที่สำคัญทุกตัว
จุดด้อย:การยศาสตร์ที่น่าสงสัย elisp ไม่ใช่เรื่องง่ายที่จะเรียนรู้
เป็นกลุ่ม
Disclamer - ฉันเปลี่ยนจากการใช้ emacs เป็นกลุ่มประมาณ 10 ปีที่แล้วและฉันใช้ vim บน Windows และ Unix / Linux เป็นพื้นฐาน
Vi และลูกหลานของมันมีสิ่งอำนวยความสะดวกแมโครแป้นพิมพ์ที่ดีมากสำหรับการแก้ไขงานโดยอัตโนมัติ สิ่งอำนวยความสะดวกการเขียนสคริปต์ในกลุ่มไม่ซับซ้อนเหมือน elisp แต่คุณสามารถสร้างได้ด้วยการสนับสนุน Python, Tcl, Perl และระบบอื่น ๆ ฉันเขียนสคริปต์เป็นครั้งคราวเท่านั้น (นอกไฟล์. vimrc) สำหรับกลุ่ม
Vim มีรอยขนาดเล็กกว่า emacs แต่นี่ไม่ใช่เรื่องใหญ่ในปัจจุบัน
เอกสารของ Vim และความช่วยเหลือออนไลน์ค่อนข้างดี Emacs มีเอกสารออนไลน์ที่ค่อนข้างดี แต่ฉันไม่คิดว่ามันครอบคลุมเท่าไหร่
Vim ได้รับส่วนต่อประสานกับผู้ใช้ที่เป็นโมฆะของ vi แต่มีความสามารถในการทำงานมากเหมือน modless editor ในขณะที่คุณสามารถนำทางในโหมดแทรก ใน Windows มันสามารถทำงานได้ค่อนข้างคล้ายกับแอปพลิเคชัน windows
จุดเด่น:สิ่งอำนวยความสะดวกมาโครคีย์บอร์ดที่ดีความสามารถในการขยายและการเขียนสคริปต์ที่ดีพอสมควร แต่ไม่ดีเท่า emacs Vim หรือ vi-editors เป็นมาตรฐานสำหรับส่วนใหญ่หากไม่ใช่ทุกลินุกซ์หรือจุดประสงค์ทั่วไปของลินุกซ์ การยศาสตร์ที่ดีขึ้นเนื้อหา
ข้อด้อย:ส่วนติดต่อผู้ใช้ Modal รู้สึกแปลก ๆ กับคนที่ใช้ Windows UIs น้อยลงของปัญหาเกี่ยวกับเป็นกลุ่มวันนี้
ปกติฉันจะใช้ Vim แต่พวกเขาเป็นบรรณาธิการที่ยอดเยี่ยม
การเรียนรู้ที่จะใช้ vi นั้นน่ารังเกียจ แต่ฉันผ่านมันไปและเรียนรู้ที่จะชอบ ช่วงเวลาที่น่าผิดหวังที่สุดของฉันคือเมื่อปุ่มเปิดล็อคอยู่ คุณสามารถลองกับ gVim ได้ แต่ข้อดีอย่างหนึ่งของ vi และ Emac ก็คือความสามารถในการทำสิ่งต่าง ๆ ที่เป็นระเบียบในขณะที่มือของคุณวางบนแป้นพิมพ์และ gVim นั้นมีแนวโน้มที่จะทำให้คุณใช้เมาส์อยู่ (การเรียนรู้ที่จะเล่นเกมโร๊คไลค์ในเวลาเดียวกันทำให้ฉันฝึกใช้ปุ่มบังคับทิศทางเคอร์เซอร์ แต่ทำให้ฉันพยายามย้ายแนวทแยงมุมในเอกสารในบางครั้ง)
Emacs น่าจะเข้าถึงได้มากกว่า มันไม่มีประสิทธิภาพและคุณจะไม่ทำให้ตัวเองหงุดหงิดด้วยการกดปุ่ม caps lock ความคิดในการควบคุมเครื่องมือแก้ไขด้วยการพิมพ์ตัวอักษรโดยใช้ปุ่มควบคุมไม่ควรเกินความเป็นจริงสำหรับผู้ใช้ที่ทันสมัยแม้ว่าปุ่มที่แท้จริงในการทำสิ่งต่าง ๆ จะดูแปลกและไร้เหตุผลสำหรับผู้ใช้ Windows / Mac OS X ทั่วไป อีกครั้งเวอร์ชันที่ให้คุณใช้เมาส์คุณมีความโปรดปรานเพียงเล็กน้อยในระยะยาว
ทั้งสองต้องการความเชี่ยวชาญระดับหนึ่งเพื่อใช้อย่างมีประสิทธิภาพ ซึ่งแตกต่างจากพูด Notepad คุณไม่สามารถนั่งลงและแก้ไข
ทั้งสองสามารถกำหนดค่าได้แม้ว่าสำหรับส่วนขยายการเขียนเงินของฉันใน Lisp เดียวกันตัวแก้ไขถูกเขียนด้วยทำให้ประสบการณ์ที่ราบรื่นยิ่งขึ้น (Emacs ที่กระจายตามปกติไม่ใช่ตัวแก้ไขจริงๆมันเป็นสภาพแวดล้อม Lisp ที่ปรับแต่งสำหรับการประมวลผลข้อความด้วยซอฟต์แวร์ที่เขียนไว้ล่วงหน้าจำนวนมากรวมถึงตัวแก้ไขดังนั้นเรื่องตลก "Emacs ทำให้เชลล์ดี แต่มันสามารถใช้ เครื่องมือแก้ไขที่ดีกว่า ")
ปกติฉันจะใช้ Vim เพราะหลังจากฝึกฝนมาอย่างกว้างขวาง นี่อาจเป็นเพราะข้อดีในระบบโหมดซึ่งมีคำสั่งมากมายให้ใช้โดยใช้นิ้วเดียวใกล้แถวบ้านหรือ "ลูกเป็ดดาวน์ซินโดรม" ซึ่งใช้กับบรรณาธิการมาก: เมื่อคุณเรียนรู้คำสั่งที่ดีแล้ว เพื่อมัน
คุณจะไม่ผิดพลาดอย่างใดอย่างหนึ่ง
เหตุผลหลักที่ฉันไม่ได้ใช้ vi / vim คือมันเป็นกิริยาช่วย เหตุผลหลักที่ฉันใช้ vi คือมีเกือบทุกที่
ฉันคิดว่าคำว่า "vim is modal" ด้านบนไม่ถูกต้อง เป็นกลุ่มมีคำสั่ง คุณสามารถทำ "11aNow เป็นเวลาสำหรับผู้ชายที่ดีทุกคน .. " และลงท้ายด้วย 11 บรรทัดใหม่ของข้อความในไฟล์ของคุณ นั่นเป็นคำสั่งไม่ใช่โหมด แต่จริงๆแล้วมีความแตกต่างพื้นฐานมากในคำสั่ง Vim กับคำสั่ง Emacs ฉันไม่แน่ใจทั้งหมดที่ฉันสามารถอธิบายได้ แต่ Eric Fischer ได้รวมการแก้ไขบรรทัด Emacs ไว้ในไดรเวอร์ TTY เมื่อ 10 ปีที่แล้วและได้รับการตีพิมพ์บทความ:
http://www.usenix.org/event/usenix99/full_papers/fischer/fischer.pdf
เขาพบว่าการแก้ไขเส้นสไตล์ Emacs นั้นแตกต่างจากพื้นฐานแบบ vi
ดังนั้น Emacs จึงมีข้อได้เปรียบที่มีอีกหลายอย่าง (ทุบตี, gnuplot, zsh, ksh บางคนอื่น ๆ ที่ฉันไม่สามารถคิดออกจากหัวของฉัน) จบลงด้วยการใช้การแก้ไขเส้นสไตล์ Emacs
ฉันควรทราบว่าตัวฉันเองใช้ Vim ตลอดเวลา ฉันเป็นผู้ใช้ Emacs เป็นครั้งคราวเท่านั้น
set -o viในbashหรือzshไม่ยากเกินไปที่จะเรียกใช้ (หรือใส่ในrcไฟล์) ในความคิดของฉัน
gnuplotPostgresql ของpsqlMySQL mysqlและอินเทอร์เฟซอื่น ๆ มากมายที่ทำโหมด Emacs มากหรือน้อยโดยค่าเริ่มต้น หากออราเคิลเท่านั้นที่สามารถsqlplusแก้ไขบรรทัดคำสั่งได้ ... ไม่ไม่ นั่นจะมากเกินไปถ้าจะถามจาก Major Corporation พวกเขามีแนวโน้มที่จะติดตาม!
inputrcทำสิ่งสำหรับเครื่องมือเชลล์ แต่จากนั้นฉันก็สงสัยตัวเองครึ่งวินาทีว่าทำไมjไม่เลื่อนลงมาพูด Mendeley Desktop หลังจากเปลี่ยนมาใช้จากเทอร์มินัล ไม่สามารถครอบคลุมทุกอย่างและมีสภาพแวดล้อมที่สอดคล้องกันโชคไม่ดี
mysql(1), psql(1), gnuplot(1)ยังpython(1), perlconsole(1), lftp(1), smbclient(1)และแน่นอนจำนวนมากของโปรแกรมการโต้ตอบมีความกังวลเกี่ยวกับ keybindings สำหรับสายการแก้ไข ซอฟต์แวร์เหล่านี้ทั้งหมดใช้GNU Readlineเท่านั้นและโหมดเริ่มต้นสำหรับ GNU Readline นั้นเหมือน (ไม่แปลกใจ) GNU Emacs set editing-mode vi ใน~/.inputrcและ voila ของคุณ- เครื่องมือทั้งหมดเหล่านี้มีการเชื่อมโยงคีย์เหมือนกับ vi
เนื่องจากยังไม่ได้ระบุไว้อย่างชัดเจนฉันจะเพิ่มว่าไม่มีสภาพแวดล้อมการเขียนโปรแกรมที่ดีกว่า (เสียงกระเพื่อมในกล่อง SLIME ฯลฯ ) กว่าการกระจาย Emacs ที่ปรับเปลี่ยนเล็กน้อย ความต้องการด้านการเขียนโปรแกรมทั้งหมดของฉัน (99%) ได้รับการดูแลจากภายใน Vim แต่สำหรับไลบรารี่และงานประจำที่ฉันเขียนฉันต้องลุกขึ้น Emacs เพื่อให้ทำงานได้อย่างมีประสิทธิภาพ
ฉันใช้ Vim / gVim
ฉันเคยใช้ Emacs แต่ฉันพบว่า gVim ทำงานได้เร็วขึ้นในเครื่องที่ช้ากว่ารวมทั้งเนื่องจากความต้องการ POSIX ทำให้ vi สามารถใช้งานได้เกือบทุกที่
เมื่อใช้ Vim หรือ gVim ฉันใช้เม้าส์เยอะมากฉันคิดว่ามันดีมาก
ฉันเริ่มใช้ Emacs เพราะมันง่ายต่อการใช้งานสำหรับผู้ใช้มือใหม่ ฉันพบว่าการใช้งานนาโนเป็นข้อผิดพลาดค่อนข้างง่ายด้วยเหตุผลบางอย่างและในบางครั้งฉันก็รู้ว่าฉันรู้สึกสะดวกสบายเมื่อใช้ vi
ตอนนี้มันเป็นส่วนผสม ฉันใช้ Eclipse และ gedit บ่อยเช่นกัน อย่างไรก็ตามเป็นกลุ่มยังคงเป็นบรรณาธิการที่ฉันโปรดปราน
ฉันใช้ทั้ง gVim และ Emacs ดีพอที่จะทำงานได้อย่างมีประสิทธิภาพแม้ว่าฉันจะไม่ชำนาญก็ตาม สิ่งหนึ่งที่ฉันสามารถพูดได้อย่างมั่นใจคือ Vim และ gVim ทำงานได้เร็วขึ้นบนแล็ปท็อป Windows 7 ของฉัน (ซึ่งฉันต้องใช้ในที่ทำงาน) Emacs บนกล่อง Windows มีนิสัยแปลก ๆ ที่ "หยุด" นานถึงนาทีและไม่ตอบสนองแม้ในขณะที่ยังคงรับอินพุตคีย์บอร์ดต่อไป สิ่งนี้ไม่ได้เกิดขึ้นใน Mac OS หรือ Linux อย่างไรก็ตามฉันพบว่าตัวเองใช้ Vim หรือ gVim เป็นส่วนใหญ่ในทุกแพลตฟอร์มดังนั้นฉันไม่ต้องหยุดและคิดว่าตัวแก้ไขที่ฉันใช้และปรับใช้เป็นอย่างไร ที่กล่าวว่าในสภาพแวดล้อม * ระวังฉันอาจจะอยู่กับ Emacs เพราะฉันพบว่าการแก้ไขที่ไม่เป็นธรรมชาติมากขึ้นเล็กน้อย
บรรทัดล่าง: ในความคิดของฉันบรรณาธิการทั้งสองมีพลังมากพอที่จะรองรับความต้องการแก้ไขข้อความใด ๆ และทั้งหมด ทางเลือกควรขึ้นอยู่กับการพิจารณาในทางปฏิบัติ (เช่นเฉพาะการใช้แพลตฟอร์ม) และรูปแบบการทำงาน
ความแตกต่างที่สำคัญระหว่าง Emacs และ Vim คือการยศาสตร์ มีซินโดรมอุโมงค์ carpal CTS อย่างที่คุณรู้ Emacs เป็น "อันตราย" มากถ้าคุณมี CTS และกระตุ้น CTS เป็นกลุ่ม - ไม่คุณสามารถอ่านเกี่ยวกับความแตกต่างนี้ได้หลายแห่ง ตัวอย่างเช่นใน Vim คุณสามารถแก้ไขข้อความได้ด้วยนิ้วเดียวเท่านั้น ใน Emacs - คุณไม่สามารถ :)
ฉันใช้vi/ nvi(ไม่vim) เพราะมันง่ายและไม่สร้างความรำคาญ
vimรักเสียงบี๊บมากมันยากและค่อนข้างไม่สงบที่จะปิด ผมต้องร่างกาย
เอาลำโพงเครื่องคอมพิวเตอร์ภายในที่สุดก่อนที่จะพบว่าถูกฝังอยู่-โทษเกี่ยวกับวิธีการที่จะทำมัน :)
set vb t_vb=
นอกจากนี้ฉันไม่ได้ใช้สีไวยากรณ์สีเทาเหนือสีดำสำหรับฉันนั้นสวยที่สุด
และบางทีฉันก็โง่เกินกว่าที่จะคิดได้ว่าemacsวิธีการกดหลายสายพันกันแบบกดสามปุ่มที่ฉันจำได้คือ CTRL-ALT-DEL
"ข้อดีและข้อเสียของ Vim และ Emacs คืออะไร" - ฮ่า!
ฉันจะทิ้งข้อดีไว้ที่คนอื่นเป็นส่วนใหญ่
ข้อเสียของทั้งสองนี้คือพวกเขาทั้งโรงเรียนเก่า ฉันเคยใช้บรรณาธิการที่แตกต่างกัน 50 คนในช่วงหลายปีที่ผ่านมาจากตัวแก้ไขบรรทัดพื้นฐานไปจนถึงตัวประมวลผลแบบโค้ดประกอบเร็วสุด (VEDIT สำหรับตัวเดียว) ไปจนถึงตัวแก้ไข GUI ที่ล้ำสมัย ฉันยังเขียนเอดิเตอร์พิเศษของตัวเองชื่อ ForthStar และดัดแปลงมันเพื่อแก้ไขแผนภูมิของใบ btrieve พร้อมดัชนีหลายรายการสำหรับการค้นหาที่ทรงพลังเช่นค้นหาใบสุดท้ายที่ฉันเพิ่งแก้ไขทันทีหรือค้นหาส่วนประกอบรหัสหรือผู้ปกครองใบไม้ได้อย่างรวดเร็ว หรือเด็ก ๆ
ฉันคิดว่าทั้ง vi และ emacs เป็นศาสนามากกว่ากล้ามเนื้อ ความคิดสร้างสรรค์ที่สร้างพวกเขาได้ย้ายไปอยู่ส่วนใหญ่และการสนับสนุนใหม่ขาดความกล้าหาญและทักษะในการคิดค้นพวกเขาอีกครั้ง
ใช่ Emacs สามารถทำอะไรได้มากมาย แต่มันช้าลงโดยเสียงกระเพื่อมภาษาที่สวยงามและตอนนี้ล้าสมัยไปแล้ว
ทั้งสองติดอยู่ในรูปแบบแป้นพิมพ์ที่ยาก Emacs สามารถปรับให้เข้ากับผู้ใช้เพียงเล็กน้อยโดยอย่างน้อยที่สุดด้วยการรับรู้ว่ามีปุ่ม Alt มากกว่า Meta โบราณ และเช่นเดียวกับ WordStar ยอมรับว่าการรักษา CA CB ให้ตรงจาก CA B เมื่อการพิมพ์ความเร็วไม่คุ้มกับความแตกต่าง ดีกว่าที่จะมีเพียงหนึ่งที่ถูกไล่ออกจากทั้งสองคำสั่งผสมคีย์ ใช่คุณสามารถเปลี่ยนการเชื่อมโยงที่สำคัญ แต่แล้วสิ่งที่คุณมีความยุ่งเหยิงในภายหลัง
Vi ฉลาด แต่ขาดการค้นหาที่มีประสิทธิภาพและแทนที่เหมือนใน Notepad ++ ซึ่งจะแสดงสิ่งที่พบให้คุณขยายและเลือกใช้สีเป็นเพียงแค่พูดถึงนวัตกรรมเดียว
เกือบทุก GUI อื่น ๆ ในปัจจุบันนี้อนุญาตให้ใช้การซูมด้วยล้อเลื่อนของเมาส์ Emacs GUI ดูเหมือนจะไม่สามารถใช้งานได้ และการชื่นชมที่ดีเหมือนที่เคทมีอยู่ที่ไหน
เลย์เอาต์แป้นพิมพ์ที่ฉันโปรดปรานในช่วงหลายปีที่ผ่านมาคือเคอร์เซอร์เพชรของ Wordstar อย่างน้อยมันก็เป็นเรื่องง่ายที่จะเรียนรู้และทำความเข้าใจในทันที สิ่งที่ฉันเกลียดที่สุดคือ WordPerfect ซึ่งเพิ่มความซับซ้อนและดูเหมือนว่าจะใช้ emacs บ้าง
ลองดูสิว่าโลกส่วนใหญ่มี GUI ในทุกวันนี้ และชอบหรือไม่บรรณาธิการข้อความจะค่อนข้างติดอยู่ในอายุของพวกเขา
ฉันคิดว่ามันจะเป็นการดีกว่าถ้ามีเครื่องมือแก้ไขแบบสากลที่สามารถสลับระหว่าง emacs, vi, wordstar หรือเลย์เอาต์ที่สำคัญได้อย่างง่ายดายและไม่ต้องใช้คำสั่งที่ทรงพลังมากขึ้น โปรแกรมเมอร์จริงต้องใช้เครื่องมือแก้ไขที่หลากหลาย ทำไมไม่มีบรรณาธิการที่ตรงกับความต้องการของเราเพื่อทำงานให้เสร็จแทนที่จะบังคับให้เราทำสิ่งต่าง ๆ ?
M-! emacs RETมันเหมือนกับการค้นหา google สำหรับ "google"