ใน emacs ฉันจะเปิดไฟล์หลายไฟล์พร้อมกันได้อย่างไร


10

ในขณะนี้ฉันใช้C-xC-fเพื่อเปิดไฟล์ใหม่ แต่มันก็ค่อนข้างน่าเบื่อ


เป้าหมายของคุณคืออะไร เปิดไฟล์หลายไฟล์พร้อมกันหรือไม่ หรือจัดการไฟล์ที่เปิดอยู่จำนวนมาก?
viam0Zah

หรือคุณเพียงต้องการที่จะเห็นหลายไฟล์ในครั้งเดียว? เนื่องจาก Emacs จะทำให้ไฟล์เหล่านี้ "เปิด" ทั้งหมด (ในความหมายมันจะถูกโหลด แต่ไม่ใช่ "open" ใน "file descriptor คือ open" sense)
Jürgen A. Erhard

ฉันต้องการแก้ไขไฟล์ต้นฉบับหลายโปรแกรมของโปรแกรม
Yazz.com

ไปถึงจุดนี้ก่อนใช้ emacs
overexchange

คำตอบ:


19

เมื่อคุณโหลดไฟล์ใน Emacs ที่มี find-file (ถูกผูกไว้กับCtrl-x Ctrl-fค่าเริ่มต้น) มันจะถูกใส่ลงใน "buffer" ตราบใดที่คุณไม่ฆ่าบัฟเฟอร์มันจะยังคงอยู่ในหน่วยความจำคุณไม่จำเป็นต้องโหลดซ้ำ

คุณเข้าถึงไฟล์ (บัฟเฟอร์) ที่โหลดแล้วด้วย switch-to-buffer (ผูกไว้กับCtrl-x b) กดปุ่มจากนั้นพิมพ์ชื่อบัฟเฟอร์ที่คุณต้องการเปลี่ยน (โดยค่าเริ่มต้นนั่นคือชื่อไฟล์พื้นฐานสำหรับไฟล์ที่โหลด)

นอกจากนี้คุณยังสามารถกดCtrl-x Ctrl-bเพื่อรับรายการบัฟเฟอร์ที่มีอยู่ในปัจจุบัน และคลิกบัฟเฟอร์ใด ๆ ที่นั่นด้วยเมาส์เพื่อสลับไปมา (IIRC ไม่ค่อยใช้เมาส์กับ Emacs ;-))

นอกจากนี้คุณยังสามารถแบ่งหน้าจอในสอง (หรือมากกว่า) ส่วนเพื่อดูไฟล์ที่แตกต่างกัน (บัฟเฟอร์) Ctrl-x 2ด้วย เริ่มแรกนี้แสดงบัฟเฟอร์เดียวกันสองครั้ง เปลี่ยนเป็นบัฟเฟอร์อื่นในหน้าต่างใดหน้าต่างหนึ่งเพื่อดูไฟล์อื่น


1
Cx 3 ยังสามารถใช้เพื่อแยกหน้าจอเป็นสอง Cx 0 เพื่อแสดงบัฟเฟอร์เดียวในครั้งเดียว
Rémi

3

Cx b และ Cx Cb คือสิ่งที่คุณต้องการ ลองพิจารณา iswitchb หรือ ido ด้วย ตั้งแต่ฉันเริ่มใช้สิ่งที่ฉันต้องการทุกโปรแกรมที่ฉันใช้สามารถสลับแท็บ / windows / เอกสารได้อย่างรวดเร็วและสะดวกเหมือน emacs บ่อยครั้งที่ฉันมีไฟล์ 50 ไฟล์ขึ้นไปเปิดใน emacs คุณสามารถค้นหาไฟล์ที่คุณต้องการได้อย่างรวดเร็วด้วย iswitchb หรือ ido


1

นอกจากนี้หากคุณใช้ emacs รุ่นกราฟิกคุณสามารถทำ ctrl-x 5 b เพื่อเปิดบัฟเฟอร์ที่มีอยู่ในหน้าต่างใหม่ (เรียกว่าเฟรมเป็น emacs-speak) หรือ ctrl-x 5 f เพื่อโหลดไฟล์ใหม่ ในหน้าต่างใหม่


1
cx 5 ขยังทำงานใน TTY แต่เปลี่ยนเฟรมเป็นที่น่ารำคาญในโหมด TTY :)
จัสตินสมิ ธ

@ Justin ขอบคุณ ฉันไม่เคยเล่นกับเฟรมใน tty มีประโยชน์มากกว่าการใช้หลายบัฟเฟอร์หรือไม่
KeithB

คุณสามารถใช้ frames vs windows ในแบบที่คุณจะใช้พื้นที่ทำงานเทียบกับ windows ใน Linux window manager - เช่น สำหรับการทำงานกับ elisp code frame 1 มีสองหน้าต่างหนึ่งหน้าต่างที่มีไฟล์ข้อมูลสำหรับ elisp และอีกอันที่มี ielm สำหรับการลองโค้ดแบบโต้ตอบเฟรม 2 มีหน้าต่างเดียวเท่านั้นที่มีไฟล์ใดก็ตามที่คุณกำลังแก้ไข เป็นไปไม่ได้ที่จะเป็นการบอกบุญ) ด้วยปุ่มลัดที่ดีสำหรับคนอื่น ๆ กรอบก็อาจจะมีการจัดเรียงที่มีประสิทธิผลมากถ้าคุณด้วยเหตุผลบางอย่างไม่ได้ต้องการที่จะทำงานเอ็กซ์
จัสตินสมิ ธ

0

คุณสามารถเปิดหลายไฟล์พร้อมกันได้อย่างง่ายดาย(หรือดำเนินการกับไฟล์ด้วยวิธีอื่น)

  1. ใช้C-x dเพื่อเยี่ยมชมไดเรกทอรี (โฟลเดอร์) ซึ่งแสดงรายการไฟล์และไดเรกทอรีย่อยทั้งหมด

  2. ทำเครื่องหมายไฟล์ที่คุณต้องการเปิด (หรือดำเนินการในวิธีอื่น) คุณสามารถทำเครื่องหมายไฟล์เป็นรายบุคคลหรือเป็นกลุ่มตามลักษณะต่าง ๆ รวมถึงรูปแบบชื่อไฟล์ ดูเมนูแถบเมนูทำเครื่องหมายและRegexp - มันแสดงความเป็นไปได้ของการทำเครื่องหมายที่มีอยู่รวมถึงแป้นพิมพ์ลัด

ตัวอย่างเช่น:

  • % m ทำเครื่องหมายไฟล์ที่มีชื่อที่ตรงกับนิพจน์ทั่วไป

  • % g ทำเครื่องหมายไฟล์ที่มีเนื้อหาตรงกับนิพจน์ทั่วไป

  • * * ทำเครื่องหมายไฟล์ที่ปฏิบัติการได้

dired-x.elเพื่อเปิดไฟล์ทั้งหมดของการทำเครื่องหมายในครั้งเดียวคุณจะต้องมีมาตรฐานห้องสมุดโหลด ทำM-x load-library dired-xหรือใส่(require 'dired-x)ไฟล์ init ของคุณ

จากนั้นคุณสามารถใช้F( dired-do-find-marked-files) เพื่อเยี่ยมชมไฟล์ที่ทำเครื่องหมายไว้ทั้งหมดในครั้งเดียว ใช้C-x C-bเพื่อดูรายการบัฟเฟอร์ที่เปิดซึ่งคุณสามารถเลือกระหว่างบัฟเฟอร์ไฟล์เหล่านั้น

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