หมู่ สงครามศักดิ์สิทธิ์ ตำนานที่สุดที่เราทราบคือสงครามผู้เผยแพร่โฆษณา Vi / Vim กับ Emacs สิ่งนี้สนุกเป็นพิเศษเพราะเป็นซอฟต์แวร์ฟรีที่มีความสามารถสูงมาก
นี่ย้อนกลับไปหลายปี Emacs ได้รับการพัฒนาโดย Richard Stallman ในปี 35 เปิดตัวเมื่อประมาณ 1991 ปีที่แล้ว Vi มีอายุไล่เลี่ยกันสร้างโดย Bill Joy ในทางกลับกัน Vim เป็นสิ่งที่ใหม่กว่าและเกิดขึ้นจากความต้องการให้ Bram Moolenar สร้างร่างโคลนของ Vi สำหรับ Amiga ในปี XNUMX
ย้อนยุคขนาดไหน! ผู้เผยแพร่จากยุคหินเมื่อชีวิตเรียบง่ายขึ้น และเรายังคงใช้มันต่อไปเพราะมันมีวิวัฒนาการและปรับให้เข้ากับยุคสมัย Vim และ Emacs ใช้อินเทอร์เฟซที่ทันสมัยใน GTK พวกเขามีภาษาส่วนขยายของตัวเองผู้จัดการแพ็คเกจ เหนือสิ่งอื่นใดที่ทำให้พวกเขาอยู่ในหมู่บรรณาธิการ ทันสมัย.
ฉันจะใช้มันเพื่ออะไร?
ลองใส่สถานการณ์สมมติที่สมบูรณ์ Gúgolเป็นคำทางคณิตศาสตร์ที่กำหนดหนึ่งตามด้วยหนึ่งร้อยศูนย์ เราจะเขียนมันในโปรแกรมแก้ไขข้อความได้อย่างไร?
วิธีแก้ปัญหาแรกที่ควรคำนึงถึงคือพิมพ์หนึ่งและกดแป้น 0 จนกระทั่งตัวนับคอลัมน์ตั้งค่าฉันเป็น 101 เนื่องจากอักขระ 101 ควรวัดนิพจน์นี้ เราสมมติว่าเราแก้ไขสิ่งนี้ในโปรแกรมแก้ไขข้อความที่มีความสามารถซึ่งมีแถบสถานะเพื่อแสดงสิ่งเหล่านี้
ตอนนี้ฉันคิดวิธีแก้ปัญหาที่ง่ายกว่านี้ได้:
i1ESC 100a0ESC
แน่นอนว่าวิธีนี้ต้องใช้ Vim หรืออย่างน้อยก็ Vi เขา คำสั่ง ค่อนข้างง่ายและเหมือนกับว่าเรากำลังพูดกับ Vim: อยู่ในโหมดปกติให้แทรก 1 และกลับสู่โหมดปกติ ตอนนี้ใส่หลังเคอร์เซอร์ร้อยครั้ง 0 และกลับสู่โหมดปกติ กลุ่มจะดำเนินการตามคำสั่งของเราโดยไม่มีคำถาม
ความซับซ้อน
วิธีนี้ฟังดูซับซ้อนมากและฉันเข้าใจ ประการแรกเนื่องจากเรากำลังจัดการกับแนวคิดของไฟล์ เครื่องมือแก้ไขโมดอล. แต่มีหลายกรณีที่มีประโยชน์มากกว่าที่คิด
สมมติว่าเรามีรายการช้อปปิ้ง เรากำลังจะไปที่ร้านและเราต้องการเขียนสิ่งที่เราจะนำมา จำไว้ว่ามันเป็นเรื่องสมมุติไม่มีใครควรเอาคอมพิวเตอร์ไปที่ร้านเพื่อไปหาอาหาร อย่างไรก็ตามนี่คือรายการของเรา:
1 กล้วย 4 แอปเปิ้ลน้ำตาล 2 กิโลน้ำ 1 ลิตร
เป็นรายการช้อปปิ้งที่ง่ายมาก แต่เรากำลังจะเตรียมการบางอย่าง อย่างแรกฉันคิดว่ากล้วยอีกสักสองสามลูกก็ไม่เลว ในขณะที่เราชอบสุนทรียศาสตร์เราจะเปลี่ยนตัวพิมพ์เล็กใน แอปเปิ้ล ที่จะปล่อยให้เธอเป็น กล้วย และเราจะแทนที่ชื่อของหน่วยด้วยตัวย่อ
มาเริ่มกันเลย เนื่องจากเราต้องการสำรองข้อมูลรายการเดิมของเราเราจึงทำสำเนาด้วย 4yy และวางไว้ด้านล่างด้วย p. กด Ctrl สองสามครั้งเพื่อเพิ่มจำนวนกล้วยและเลื่อนไปที่ท้ายคำถัดไปด้วย e. เราลงไปที่บรรทัดที่สองเราทำ a Fm เพื่อไปที่คำว่าแอปเปิ้ลแล้วกด ~ (AltGr-4 บนแป้นพิมพ์ของฉัน) เพื่อให้ตัวอักษรเปลี่ยนเป็นเวอร์ชันตัวพิมพ์ใหญ่ เราทำไฟล์ j เพื่อลงไปที่บรรทัดถัดไปและเราจะปรากฏใน k ของ ปอนด์ กับ b. เราออกจากโหมดปกติโดยการพิมพ์ cw และเขียนคำแทนสำหรับกิโลกรัมซึ่งจะเป็นกิโลกรัม เรากด ESC กลับสู่โหมดปกติและอีกครั้ง j ทำเช่นเดียวกันกับ ลิตร. พร้อม. นี่คือลักษณะรายการของเราตอนนี้
3 กล้วย 4 แอปเปิ้ลน้ำตาล 2 กก. น้ำ 1 ลิตร
พลัง
สรุปการดำเนินการข้างต้นในสิ่งนี้:
4yy G p 2Ctrl-A e Fm ~ jb cw kg ESC jb cw L ESC
ฉันเคารพช่องว่างบางอย่างเพื่อให้เข้าใจได้ แต่มักจะไม่ทำ คำสั่งของหุ่นยนต์นี้ทำให้เราคิดมากเกี่ยวกับประโยชน์ของมัน แต่แน่นอนว่าจะทำได้เร็วกว่าการเลื่อนเมาส์เลือกคัดลอกวางลบและอื่น ๆ
บรรณาธิการตราบใดที่ Vim หรือ Emacs สามารถทำสิ่งนี้ได้เนื่องจากได้รับการพัฒนามาหลายปีและมีแนวคิดที่ชัดเจนในการทำสิ่งต่างๆ
การเรียนรู้เส้นโค้ง
ใช่พวกเขาสูงชัน แต่นั่นคือสิ่งที่ความคิดริเริ่มเช่น Cream มีไว้สำหรับซึ่งมอบสภาพแวดล้อม Vim ที่พร้อมใช้งานได้ทันทีโดยไม่ต้องต่อสู้กับโหมดและสิ่งต่างๆและโหมดกูรูซึ่งเป็นส่วนขยายของ Emacs ที่ - เท่าที่ฉันรู้ - ช่วยผู้เริ่มต้น
โหมดกูรูเป็นส่วนหนึ่งของ Emacs Prelude ซึ่งเป็นชุดส่วนขยาย อะไรทำให้มันง่ายสำหรับคุณ หากคุณต้องการเรียนรู้
ส่วนขยาย
เนื่องจากเป็นบรรณาธิการที่แพร่หลายมากกว่าบรรณาธิการสมัยใหม่หลาย ๆ คนและมีภาษาส่วนขยายของตัวเองคุณจึงสามารถค้นหาธีมสีปลั๊กอินและอื่น ๆ ได้ มีสิ่งที่น่าสนใจเช่น:
- Un ผู้จัดการส่วนตัว (อีแมค)
- Un วิกิภายในตัวแก้ไข (เป็นกลุ่ม)
- วิธีที่จะทำให้คุณ การบำบัดโรค, กาแฟ y ทวีต/ขุด (อีแมค)
- และแม้แต่ก การกระจายเต็มรูปแบบ เพื่อให้ชีวิตง่ายขึ้นสำหรับโปรแกรมเมอร์ (Vim)
ดูเหมือนว่าจะง่ายกว่า (หรือน่าพอใจกว่า) ในการเขียนโปรแกรมส่วนขยายใน Emacs Lisp มากกว่าใน VimScript ฉันหมายความว่ามันเป็นภาษาที่ใช้งานได้ซึ่งตีความโดยเคอร์เนลที่สร้างขึ้นเพื่อสิ่งนั้นเทียบกับภาษาที่จำเป็นที่สร้างขึ้นเพื่อกำหนดค่าและขยาย
ข้อสรุป
ลองดูสิ! ไม่มีค่าใช้จ่ายใด ๆ ทั้งสองซอฟต์แวร์ฟรีแจกจ่ายให้ฟรี พวกเขาต้องอยู่ในที่เก็บของการแจกแจงทั้งหมดที่มนุษย์รู้จักและสามารถพบได้ในระบบกรรมสิทธิ์ของ malefic มีอีกไม่มากที่จะขอ
และสุดท้าย หากคุณแปลกใจเพราะฉันใส่ e นำหน้า Emacs ในหัวเรื่อง แทนที่จะเป็น y นั่นเป็นเพราะมันฟังดูดีกว่าสำหรับฉัน บางอย่างเช่น /í-macs/. ฉันสามารถช่วยตัวเองในการสะกดปัญหาได้โดยการเปลี่ยนตำแหน่ง แต่ฉันชอบที่ Vim ทำแบบนั้นจริงๆ