วิธีใช้ Emacs Editor ใน Linux

Emacs เป็นหนึ่งในโปรแกรมแก้ไขข้อความที่เก่าแก่และหลากหลายที่สุด เวอร์ชัน GNU Emacs เขียนขึ้นครั้งแรกในปี 1984 และเป็นที่รู้จักกันดีในด้านคุณสมบัติการแก้ไขที่ทรงพลังและครบครัน สามารถปรับแต่งและขยายด้วยโหมดต่างๆ ได้ ทำให้สามารถใช้งานได้เหมือนกับ Integrated Development Environment (IDE) สำหรับภาษาการเขียนโปรแกรม เช่น Java, C และ Python สำหรับผู้ที่ใช้ทั้ง Vi และโปรแกรมแก้ไขข้อความนาโนที่ใช้งานง่าย Emacs ถูกนำเสนอว่าอยู่ระหว่างนั้น จุดแข็งและฟีเจอร์มีความคล้ายคลึงกับ Vi ในขณะที่เมนู ไฟล์วิธีใช้ และปุ่มคำสั่งเปรียบเทียบกับนาโน

ในบทความนี้ จะได้เรียนรู้วิธีการติดตั้ง Emacs บนเซิร์ฟเวอร์ Ubuntu 20.04 และใช้สำหรับการแก้ไขข้อความพื้นฐาน

ขั้นตอนที่ 1 – การติดตั้ง Emacs

เริ่มต้นด้วยการตรวจสอบว่าระบบมี Emacs ติดตั้งอยู่แล้วหรือไม่

emacs

หากติดตั้งโปรแกรมแล้ว จะปรากฎข้อความต้อนรับเริ่มต้น ถ้ายังไม่ติดตั้งจะได้รับผลลัพธ์นี้

ในการติดตั้ง Emacs ให้ใช้คำสั่งต่อไปนี้

sudo apt install emacs

ขั้นตอนที่ 2 – การใช้ Interface

เริ่มใช้งาน Emacs โดยพิมพ์คำสั่ง emacs ในเทอร์มินัล

emacs

Emacs เริ่มต้นด้วย buffer แก้ไขที่ว่างเปล่า และรอให้เริ่มพิมพ์ เมื่อ Emacs เริ่มทำงานโดยไม่มีไฟล์ที่ระบุ โปรแกรมจะแสดงข้อความต้อนรับ

หากต้องการเริ่มไฟล์ใหม่ ให้เลื่อนเคอร์เซอร์ไปที่ลิงก์ “visit new file” โดยกดปุ่ม TAB จากนั้นกด ENTER คุณยังสามารถกด CTRL+X จากนั้น CTRL+F เพื่อสร้างไฟล์ใหม่ ข้อความแจ้งจะปรากฏขึ้นที่ส่วนท้ายของเทอร์มินัลของคุณเพื่อขอชื่อไฟล์

ใส่ชื่อไฟล์เพื่อเริ่มแก้ไขข้อความ ในตัวอย่างต่อไปนี้ จะใช้ myfile.txt คุณสามารถตั้งชื่อไฟล์นี้ตามที่ต้องการ เมื่อพิมพ์ชื่อไฟล์แล้ว ให้กด ENTER เพื่อดำเนินการต่อ จะปรากฎไฟล์ว่างที่พร้อมสำหรับการพิมพ์ข้อความใหม่

ที่ด้านบนของหน้าจอจะมีเมนู หลังคำว่าเมนูจะมีพื้นที่แก้ไขขนาดใหญ่ สิ่งนี้เรียกว่า buffer หลักที่จะต้องพิมพ์ข้อความหรือดูเนื้อหาของไฟล์ สามารถดูรายละเอียดเพิ่มเติมได้ที่นี่

ขั้นตอนที่ 3 – การใช้ปุ่มคำสั่ง

หากเริ่มคุ้นเคยกับ Interface แล้ว ก็สามารถเริ่มทำความคุ้นเคยกับปุ่มคำสั่งของ Emacs ได้แล้ว เมื่อเปิดไฟล์สามารถเริ่มพิมพ์และออกคำสั่งพร้อมกันได้ ฟังก์ชันคำสั่งมักจะเกี่ยวข้องกับปุ่มสองหรือสามปุ่ม โดยทั่วไปคือแป้น CTRL ตามด้วยแป้น ALT หรือ ESC โดยที่ CTRL จะแสดงในรูปแบบย่อเป็น “C” ภายในสภาพแวดล้อม Emacs หมายเหตุภายใน Emacs เช่น C-x C-c หมายความว่าคุณกดแป้น CTRL+X พร้อมกัน จากนั้นกด CTRL+C ในทำนองเดียวกัน C-h t หมายถึงกด CTRL+H พร้อมกัน จากนั้นปล่อยทั้งสองปุ่มแล้วกด t

ปุ่ม ALT และ ESC เรียกว่า Meta key ใน Emacs บนเครื่อง Apple ให้ใช้ปุ่ม OPTION แทน ALT แป้นพิมพ์อื่นๆ จะใช้ปุ่ม EDIT เช่นเดียวกับปุ่ม CTRL Emacs ใช้ฟังก์ชันหลายคีย์ร่วมกับเมตาคีย์ ตัวอย่างเช่น สัญลักษณ์เช่น M-x หมายความว่าคุณกด ALT หรือ OPTION และ x พร้อมกัน ในทำนองเดียวกัน คุณสามารถใช้ ESC+X เพื่อทำคำสั่งเดียวกันให้สำเร็จได้

ปุ่ม ENTER จะแสดงเป็น RET ใน Emacs ซึ่งย่อมาจาก return ปุ่ม ESC มักแสดงเป็น E

สามารถใช้ปุ่ม ESC เพื่อถอยออกจากคำสั่งหรือพรอมต์ได้ ตัวอย่างเช่น สามารถกด ESC หลายครั้งเพื่อออกจากเมนูที่ต้องการ วิธียกเลิกการดำเนินการอีกวิธีหนึ่งคือการกด CTRL+G

การบันทึกและการกดออก

เมื่อได้ทำการเปลี่ยนแปลงในเอกสารหรือเขียนข้อความแล้ว คุณสามารถบันทึกได้โดยกด CTRL+X ตามด้วย CTRL+S buffer ขนาดเล็กจะแสดงข้อความต่อไปนี้

สามารถออกจาก Emacs ได้โดยกด CTRL+X จากนั้นกด CTRL+C หากไม่ได้บันทึกไฟล์ด้วยตนเองก่อนออกจากระบบ คุณจะได้รับข้อความนี้

Save file /home/john/myfile.txt? (y, n, !, ., q, C-r, C-f, d or C-h)

กด Y เพื่อบันทึกไฟล์ หากคุณกด N เพื่อไม่ คุณจะได้รับข้อความนี้

Modified buffers exist; exit anyway? (yes or no)

พิมพ์ Yes เพื่อออกโดยไม่บันทึก

วิธีค้นหาไฟล์เอกสารขนาดยาวหรือหัวข้อวิธีที่ต้องการใช้อาจเป็นงานที่น่าเบื่อ แต่โชคดีที่ใน Emacs มีหลายวิธีในการค้นหา

เรื่องที่ต้องการดำเนินการคำสั่งที่ต้องใช้
ย้ายไปบรรทัดถัดไปCTRL+N
ย้ายกลับไปบรรทัดก่อนหน้าCTRL+P
ย้ายไปหนึ่งตัวอักษรข้างหน้าCTRL+F
ย้ายกลับไปหนึ่งตัวอักษรข้างหลังCTRL+B
ย้ายไปหนึ่งคำข้างหน้าMETA+F
ย้ายกลับไปหนึ่งคำข้างหลังMETA+B
ย้ายไปจุดเริ่มต้นของบรรทัดCTRL+A
ย้ายไปท้ายสุดของบรรทัดCTRL+E
ย้ายไปหน้าถัดไปCTRL+V
ย้ายไปจุดเริ่มต้นของประโยคMETA+A
ย้ายไปจุดสิ้นสุดของประโยคMETA+E
ย้ายไปหน้าก่อนหน้าMETA+V
ย้ายไปจุดเริ่มต้นของไฟล์META+<
ย้ายไปจุดสุดท้ายของไฟล์META+>
สำหรับ META หมายความว่าคุณสามารถใช้คีย์ใดก็ได้ต่อไปนี้: ALT, ESC, OPTION หรือ EDIT

ขั้นตอนที่ 4 – การแก้ไขฟังก์ชั่น

หากต้องการทำงานพิเศษเพิ่มเติมซึ่งเหมือนกับโปรแกรมประมวลผลคำยอดนิยม เช่น การเลือกหรือเน้นส่วนเฉพาะของไฟล์ข้อความ สามารถทำได้ใน Emacs

Marking Text Regions

หากต้องการทำเครื่องหมายขอบเขตข้อความให้ทำตามขั้นตอนต่อไปนี้

  • เลื่อนเคอร์เซอร์ไปยังตำแหน่งที่คุณต้องการให้เริ่มการเลือก 
  • กด CTRL+SPACEBAR หรือ CTRL+@ เพื่อตั้งค่าเครื่องหมายเพื่อเริ่มการเน้นข้อความโดยที่ buffer ขนาดเล็กจะแสดงข้อความสถานะของ Mark Activated
  • เลื่อนเคอร์เซอร์ไปยังตำแหน่งที่คุณต้องการให้ขอบเขตสิ้นสุด โดยใช้คีย์ผสมใดๆ ที่อธิบายไว้ก่อนหน้านี้
  • ข้อความจะถูกไฮไลท์จนถึงจุดที่เคอร์เซอร์อยู่
  • กด CTRL-SPACEBAR หรือ CTRL+@ สองครั้งเพื่อยกเลิกการทำเครื่องหมายข้อความที่ไฮไลต์ buffer ขนาดเล็กจะแสดงข้อความสถานะของ Mark Deactivated

อีกวิธีหนึ่งจะคล้ายกับการใช้โปรแกรม Word เราสามารถกดปุ่ม SHIFT ค้างไว้แล้วเลื่อนเคอร์เซอร์ด้วยปุ่มลูกศรขึ้นหรือลงบนแป้นพิมพ์เพื่อทำการเลือก หากต้องการเลือกย่อหน้าที่เคอร์เซอร์ของคุณเปิดอยู่ ให้กด META+H หลังจากนั้น การกด META+h อย่างต่อเนื่องจะเลือกย่อหน้าถัดไปในไฟล์ข้อความของคุณ หรือ หากต้องการเลือกเนื้อหาทั้งหมดของ buffer หลัก (เช่น “เลือกทั้งหมด”) ให้กด CTRL+X จากนั้น h

การตัด การคัดลอก และวางข้อความ

มีความคล้ายกับการใช้โปรแกรม Word สามารถคัดลอก ตัด และวางข้อความได้:

  • หากต้องการคัดลอกข้อความที่คุณเลือก ให้กด META+W
  • เมื่อต้องการตัดส่วนที่เลือกข้อความ ให้กด CTRL-W
  • เมื่อต้องการวางส่วนที่เลือกข้อความ ให้กด CTRL-Y

การลบข้อความ

สามารถใช้ปุ่ม Backspace และ Delete เพื่อทำการลบข้อความ แต่หากต้องการลบทั้งคำอย่างรวดเร็ว ให้เลื่อนเคอร์เซอร์ไปที่จุดเริ่มต้นของคำแล้วกด META+D หากต้องการลบหลายคำ ให้กดปุ่ม META ค้างไว้แล้วกด D อย่างต่อเนื่อง คำต่างๆ จะถูกลบทีละคำ หากต้องการลบทั้งบรรทัด ให้วางเคอร์เซอร์ในตำแหน่งที่คุณต้องการ จากนั้นกด CTRL+K เพื่อลบข้อความจนถึงท้ายบรรทัด

หากต้องการลบประโยค ให้กด META+K อย่างไรก็ตาม Emacs จะลบทั้งบรรทัดหรือมากกว่านั้น หากไม่มีช่องว่างสองช่องหลังจากมหัพภาค ช่องว่างสองช่องหลังจากมหัพภาคคือสิ่งที่ Emacs กำหนดว่าเมื่อไหร่ที่ประโยคถูกตัดข้ามหลายบรรทัด

การเลิกทำและการทำซ้ำ (Undoing and Redoing)

คุณสามารถยกเลิกการดำเนินการล่าสุดได้โดยกด CTRL+X จากนั้นคุณ คีย์ผสมทางเลือกคือ CTRL+_ (คีย์ที่กดที่นี่จะเป็น CTRL, SHIFT และ – เพื่อดำเนินการขีดล่าง) หากต้องการทำซ้ำการเลิกทำครั้งล่าสุด ให้กด CTRL+G ตามด้วย CTRL+_

การค้นหาและการแทนที่ข้อความ

การค้นหาใน Emacs มีสองแบบคือ หาข้อความข้างหน้าหรือข้างหลัง โดยหากต้องการค้นหาไปข้างหน้า คำที่คุณระบุจะถูกค้นหาไปข้างหน้าจากตำแหน่งเคอร์เซอร์ปัจจุบัน สำหรับการค้นหาแบบย้อนหลัง มันเป็นการจะสลับกัน

  • กด CTRL+S เพื่อค้นหาไปข้างหน้า จากนั้นป้อนข้อความที่คุณกำลังค้นหาในพรอมต์ buffer ขนาดเล็ก
  • กด CTRL+R เพื่อค้นหาแบบย้อนกลับ

ทันทีหลังจากที่มีการป้อนคำค้นหา Emacs จะค้นหาและเน้นรายการที่ตรงกันที่พบใน buffer หลัก

การเพิ่มการจัดตำแหน่งซ้าย ขวา และกึ่งกลาง

หากต้องการจัดตัวอักษรให้อยู่กึ่งกลาง ให้เลื่อนเคอร์เซอร์ไปที่จุดเริ่มต้นของบรรทัดนั้นแล้วกด META+O จากนั้นกด META+S

หากต้องการจัดตำแหน่งข้อความที่เลือก ให้ทำดังต่อไปนี้

1.ไฮไลต์ข้อความที่คุณต้องการจัดชิดขอบ

2.กด META+X บัฟเฟอร์ขนาดเล็กจะรอการตอบกลับ

3.ป้อน set-justifiction- แล้วกดปุ่ม TAB

จะได้รับตัวเลือกดังต่อไปนี้: set-justification-center, set-justification-left, set-justification-right, set-justification-none และ set-justification-full เพื่อให้คำสั่งมีผลสมบูรณ์ ให้เลือก set-justification-right หรือตัวเลือกใดตัวเลือกหนึ่ง จากนั้นกด ENTER ข้อความที่เลือกจะถูกจัดชิดขอบตามทิศทางที่เลือก

Converting Case

สามารถแปลงตัวพิมพ์ด้วยคำสั่งที่แตกต่างกัน ดังต่อไปนี้

เรื่องที่ต้องการดำเนินการคำสั่งที่ต้องใช้
การใช้ตัวอักษรพิมพ์ใหญ่ตามหลัง เคอร์เซอร์META+C
การแปลงคำเป็นตัวพิมพ์เล็กMETA+L
การแปลงคำเป็นตัวพิมพ์ใหญ่META+U
การแปลงย่อหน้าเป็นตัวพิมพ์ใหญ่เลือก Block จากนั้น CTRL+X CTRL+U
การแปลงย่อหน้าเป็นตัวพิมพ์เล็กเลือก Block จากนั้น CTRL+X CTRL+L
หากกำลังแปลงทั้งย่อหน้าขึ้นไปเป็นตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก จะได้รับหน้าต่างและข้อความใหม่

Managing Windows

การจัดการหน้าต่างภายใน Emacs สามารถช่วยให้ทำงานกับไฟล์ ได้อย่างมีประสิทธิภาพมากขึ้น ตัวอย่างเช่น จาก buffer หลัก ให้สลับไปยังบทช่วยสอน Emacs โดยกด CTRL+h จากนั้น t หน้าต่าง buffer หลัก ตอนนี้คือบทช่วยสอน Emacs หากต้องการเปลี่ยนกลับไปใช้ buffer  myfile.txt ให้กด CTRL+X จากนั้น b นี่คือคำสั่งบัฟเฟอร์สวิตช์ Emacs จะแจ้งให้คุณใส่ชื่อ buffer เพื่อเปลี่ยนไปใช้ เริ่มพิมพ์ชื่อบัฟเฟอร์ myfile.txt แล้วกด ENTER จะทำให้ออกจากบทช่วยสอน Emacs ไปยังไฟล์ที่ระบุ

ขั้นตอนที่ 5 – การเข้าสู่โหมด

เข้าสู่ Major Mode

หนึ่งในเหตุผลที่ Emacs ถูกนำมาใช้กันอย่างแพร่หลายใน UNIX ก็เนื่องมาจากความสามารถในการรับโหมดที่แตกต่างกัน โหมดสามารถเพิ่มประสิทธิภาพการทำงานของ Emacs โดยขึ้นอยู่กับโหมดที่เลือก Emacs สามารถใช้เป็นโปรแกรมประมวลผลคำสำหรับการเขียนไฟล์ข้อความ หรือสามารถปรับใช้กับงานขั้นสูง เช่น การเขียน Python, C หรือโค้ด Java ตัวอย่างเช่น สามารถเปลี่ยนโหมดของ Emacs เพื่อให้ทำงานกับระบบควบคุมเวอร์ชัน รันคำสั่ง shell หรืออ่าน man page ได้

โหมด Emacs มีสองประเภทที่แตกต่างกัน หนึ่งเรียกว่าโหมดหลัก ในโหมดหลัก Emacs สามารถใช้เป็น Integrated development environment (IDE) สำหรับการเขียนโปรแกรมหรือภาษาสคริปต์ ในโหมดนี้ โปรแกรมนำเสนอคุณสมบัติพิเศษ เช่น การเน้นไวยากรณ์สี การเยื้องและการจัดรูปแบบ ตัวเลือกเมนูเฉพาะภาษา หรือการเชื่อมต่อกับดีบักเกอร์และคอมไพเลอร์โดยอัตโนมัติ

เพื่อยกตัวอย่าง สามารถเขียนแอป “Hello World” ใน Python โดยใช้ Emacs ภายในเทอร์มินัลและในไฟล์หลัก ให้ป้อนคำสั่งต่อไปนี้

cd ~
emacs hello.py

Emacs รู้จักนามสกุลไฟล์และจะเริ่มในโหมด Python ใน buffer หลัก ให้ป้อนโค้ด Python ต่อไปนี้

print "hello world!\n"

ขณะนี้คำหลักถูกระบุด้วยการเน้นด้วยสี อย่าลืมสังเกตด้วยว่าบรรทัดสถานะเหนือ buffer ขนาดเล็กเผยให้เห็นโหมดที่คุณอยู่ในปัจจุบัน เมนูหลักยังมีรายการแยกต่างหากสำหรับ Python โดยเฉพาะ

บันทึก buffer ด้วย CTRL+X CTRL+S

หากต้องการเปลี่ยนโหมดหลักจากภายใน Emacs ให้กด META+X บัฟเฟอร์ขนาดเล็กจะรอการตอบกลับของคุณ จากนั้นคุณสามารถเข้าสู่โหมดอื่นได้ นี่คือตัวอย่างบางส่วนของโหมดหลักๆ

  • โหมด C
  • โหมด python
  • โหมด java
  • โหมด html
  • โหมด Perl
  • โหมด shell-script
  • โหมดข้อความ (text)

เข้าสู่ Minor Mode

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

อีกตัวอย่างหนึ่งของโหมดรองคือ auto-fill-mode หากต้องการเข้าสู่โหมดนี้ในตัวแก้ไข Emacs ให้กดปุ่ม META+X จากนั้นเข้าสู่ auto-fill-mode โหมดนี้ช่วยให้บรรทัดข้อความสามารถแบ่งและตัดไปยังบรรทัดถัดไปได้เมื่อมีความยาวมากกว่า 70 อักขระ ต้องจำไว้ว่าเมื่อเรียกใช้โหมดรอง มันจะเหมือนกับสลับสวิตช์ การเรียกใช้คำสั่งเดียวกันอีกครั้งจะเป็นการปิดใช้การตัดบรรทัด

ต่อไปนี้เป็นตัวอย่างเพิ่มเติมของโหมดรอง

  • auto-save-mode: การบันทึกที่จะเกิดโดยอัตโนมัติที่จะบันทึกเนื้อหาของ buffer หลักเป็นระยะ ๆ
  • line-number-mode: สลับการแสดงหมายเลขบรรทัดปัจจุบันในแถบสถานะ
  • linum-mode: สลับการแสดงหมายเลขบรรทัดตามขอบด้านซ้ายของหน้าต่าง
  • column-number-mode: แสดงตำแหน่งปัจจุบันของเคอร์เซอร์ในแถบสถานะ
  • overwrite-mode:เหมือนกับการกดปุ่ม INS บนคีย์บอร์ด เมื่อเปิดเครื่อง ข้อความจะเขียนทับข้อความทางด้านขวาของเคอร์เซอร์ขณะที่คุณพิมพ์
  • menu-bar-mode: สามารถเปิดหรือปิดเมนูหลักได้

Was this article helpful?

Related Articles