คุณจะเปรียบเทียบบรรณาธิการเหล่านี้อย่างไร? ข้อดีและข้อเสียของแต่ละข้อคืออะไร?
[ หมายเหตุ ] สิ่งนี้ไม่ได้มีไว้สำหรับผู้ที่ "เกลียดชังและรักอีกคน" หรือผู้ที่ไม่ได้ใช้ทั้งคู่
คุณจะเปรียบเทียบบรรณาธิการเหล่านี้อย่างไร? ข้อดีและข้อเสียของแต่ละข้อคืออะไร?
[ หมายเหตุ ] สิ่งนี้ไม่ได้มีไว้สำหรับผู้ที่ "เกลียดชังและรักอีกคน" หรือผู้ที่ไม่ได้ใช้ทั้งคู่
คำตอบ:
ฉันใช้ทั้งคู่แม้ว่าจะต้องเลือกอันใดอันหนึ่งฉันก็รู้ว่าจะเลือกอันไหน ถึงกระนั้นฉันจะพยายามทำการเปรียบเทียบวัตถุประสงค์ในประเด็นสองสามประเด็น
ใช้ได้ทุกที่? หากคุณเป็นผู้ดูแลระบบมืออาชีพที่ทำงานกับระบบ 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/null
vs. 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
ไฟล์) ในความคิดของฉัน
gnuplot
Postgresql ของpsql
MySQL 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"