คำถามติดแท็ก buffers

ข้อความที่คุณกำลังแก้ไขใน Emacs อยู่ในวัตถุที่เรียกว่าบัฟเฟอร์ ทุกครั้งที่คุณเยี่ยมชมไฟล์บัฟเฟอร์จะถูกใช้เพื่อเก็บข้อความของไฟล์ ทุกครั้งที่คุณเรียกใช้ Dired บัฟเฟอร์จะถูกใช้เพื่อเก็บรายการไดเรกทอรี

1
สลับการวางแนวการแบ่งหน้าต่างวิธีที่เร็วที่สุด
สมมติว่าคุณเปิดบัฟเฟอร์สองอันเช่นนี้: ------------------------------------ | | buffer 1 | buffer 2 | | | ------------------------------------ เป็นวิธีที่เร็วที่สุดในการสลับบัฟเฟอร์เพื่อให้คุณได้รับสิ่งนี้: ------------------------------------ buffer 1 | | ------------------------------------ buffer 2 | | ------------------------------------
16 buffers  window 

1
รับเนื้อหาของบัฟเฟอร์
ดังนั้นbuffer-stringได้รับเนื้อหาของบัฟเฟอร์ปัจจุบัน แต่ไม่อนุญาตให้ระบุบัฟเฟอร์อื่น ฉันจะหลีกเลี่ยงสิ่งนั้นได้อย่างไร ฉันต้องการบางสิ่งบางอย่างsave-window-excursionเพื่อให้มันทำงานได้หรือไม่

1
Helm swoop ในไฟล์โครงการทั้งหมด (ไม่ใช่แค่บัฟเฟอร์ปัจจุบัน)
ดังนั้นฉันจึงต้องการhelm-swoopดูไฟล์ทั้งหมดในโครงการไม่ใช่เฉพาะชุดบัฟเฟอร์เปิดปัจจุบัน นี่คือเพื่อให้ฉันสามารถใช้ swoop เพื่อค้นหาสิ่งที่เกิดขึ้นทั้งหมดในโครงการทำเครื่องหมายคนที่เกี่ยวข้องแล้วแก้ไขพวกเขา (ในโหมดแก้ไข helm swoops) ฉันรู้สึกว่าอาจมีวิธีที่สะอาดในการทำเช่นนี้กับ Helm / Helm โฉบ แต่นี่คือความพยายามของฉันที่จะคิดผ่านทางแก้ปัญหา: รวบรวมชื่อไฟล์จากกระสุนปืน สร้างรายการบัฟเฟอร์จากรายการชื่อไฟล์ ทำรูทีนเดียวกันกับ helm-multi-swoop-all นอกเหนือจากการใช้รายการบัฟเฟอร์ใหม่นี้ (projectile-current-project-files)ดูเหมือนว่าจะให้รายชื่อไฟล์ที่ฉันกำลังมองหา ดังนั้นhelm-multi-swoop-allดูเหมือนว่ามันจะค่อนข้างง่ายในการคัดลอกแล้วปรับแต่ง (defun helm-multi-swoop-all (&optional $query) (interactive) "Apply all buffers to helm-multi-swoop" (cond ($query (setq helm-multi-swoop-query $query)) (mark-active (let (($st (buffer-substring-no-properties (region-beginning) (region-end)))) (if (string-match "\n" $st) (message "Multi line region is …
15 buffers  helm 

2
ฉันจะแสดงตัวอย่าง Markdown แบบสดขณะที่ฉันกำลังเขียนได้อย่างไร
ฉันจะทำเช่นนั้นในบัฟเฟอร์ที่แตกต่างกันหรือแม้กระทั่งในบัฟเฟอร์ปัจจุบันได้อย่างไร ฉันพยายามที่จะทำ Github README.md และการเรนเดอร์ Github อื่น ๆ ของ Markdown (สำหรับโน้ตและอื่น ๆ )

2
ฉันจะป้องกันคำสั่งจากการใช้หน้าต่างเฉพาะได้อย่างไร
โดยทั่วไปฉันมีกรอบแยกออกเป็นสี่หน้าต่างโดยที่สองที่ด้านล่างอุทิศให้กับฉัน*compilation*และ*grep*บัฟเฟอร์ เมื่อเรียกดูข้อผิดพลาดในการรวบรวมnext-errorในที่สุดจะแทนที่*grep*บัฟเฟอร์ของฉันด้วยหนึ่งในไฟล์เป้าหมาย ฉันnext-errorจะกำหนดค่าให้ไม่ใช้หน้าต่างที่มี*grep*บัฟเฟอร์ได้อย่างไร กรณีการใช้งานเฉพาะของฉันคือnext-errorคำสั่ง แต่ยินดีต้อนรับคำตอบทั่วไปเพิ่มเติมเช่นกัน
14 buffers  window 

2
ฉันจะกำหนดขนาดแบบอักษรที่แตกต่างกันสำหรับบัฟเฟอร์และโหมดบรรทัดได้อย่างไร
ฉันมีบรรทัดนี้ในไฟล์ init.el ของฉันเพื่อกำหนดขนาดตัวอักษรในทุกเฟรม: (push '(font . "DejaVu Sans Mono-10") default-frame-alist) มันใช้งานได้ แต่ฉันต้องการให้ตัวอักษรที่ใหญ่กว่าในบัฟเฟอร์ทั้งหมดในขณะที่รักษาตัวที่เล็กกว่าสำหรับบรรทัดโหมด (ดังนั้นมันจึงสามารถพอดีกับข้อมูลเพิ่มเติมและทำให้เสียสมาธิน้อยลง) แนวคิดคือการตั้งค่านี้โดยอัตโนมัติโดยไม่ต้องเปลี่ยนขนาดตัวอักษรด้วย Cx C- + สำหรับทุกบัฟเฟอร์ที่เปิดอยู่ ฉันใช้ Emacs 25.0.50.1 เรียบเรียงจากลำตัวบนระบบ GNU / Linux แก้ไข: เพิ่งเพิ่มคำตอบที่แสดงว่าสามารถทำได้

1
เมื่อสลับบัฟเฟอร์ป้องกัน emacs จากการสลับเฟรมโดยอัตโนมัติ
เมื่อฉันสลับบัฟเฟอร์ emacs จะสลับไปยังเฟรมที่มีอยู่หากบัฟเฟอร์เปิดอยู่แล้ว ฉันพบวิธีการป้องกันเมื่อสลับกับ ido โดยใช้: (setq ido-default-buffer-method 'selected-window) แต่ก็ยังไม่เพียงพอ: สำหรับตัวอย่างถ้ามีข้อผิดพลาดเสียงกระเพื่อม emacs จะเปลี่ยนเป็นบัฟเฟอร์ * Backtrace * โดยอัตโนมัติและจะเปลี่ยนเฟรมหากเปิดอยู่ มีวิธีการป้องกัน emacs อย่างสมบูรณ์จากการเปลี่ยนเป็นเฟรมที่มีอยู่หรือไม่?

6
วิธีรับบัฟเฟอร์ (ไม่ใช่แค่ไฟล์) เพื่อเป็นเกียรติแก่ auto-mode-alist?
ถาม:ฉันจะรับบัฟเฟอร์ใหม่เพื่อทำแผนที่ได้auto-mode-alistอย่างไร เมื่อค้นหาไฟล์ Emacs จะเปรียบเทียบส่วนขยายของไฟล์กับauto-mode-alistเพื่อกำหนดโหมดหลักที่จะใช้สำหรับบัฟเฟอร์ของไฟล์ มีวิธีใช้ข้อมูลในauto-mode-alistการกำหนดโหมดสำหรับบัฟเฟอร์ที่ยังไม่มีไฟล์ที่เกี่ยวข้องหรือไม่ นั่นคือ: ถ้าฉันเปิดบัฟเฟอร์ใหม่ที่ชื่อมีบางอย่างที่ดูเหมือนนามสกุลไฟล์ฉันจะให้มันเปิดโดยอัตโนมัติในโหมดที่คาดไว้ได้ไหม ตัวอย่างเช่นถ้าฉันจะเปิดบัฟเฟอร์ใหม่a-new-buffer.elที่ยังไม่ได้เชื่อมโยงกับไฟล์ฉันต้องการให้เปิดในemacs-lisp-modeแทนที่จะอยู่ในโหมดเริ่มต้น

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

3
ฆ่าบัฟเฟอร์เมื่อลบเฟรม
เมื่อฉันปิดเฟรมฉันต้องการให้บัฟเฟอร์ของมันถูกฆ่า หากบัฟเฟอร์แสดงในเฟรมอื่นไม่ควรฆ่าบัฟเฟอร์ ไม่ทำอะไรเลยถ้ามีบัฟเฟอร์มากกว่าหนึ่งแสดงในเฟรม เป็นวิธีที่ดีในการตั้งค่านี้คืออะไร?
12 buffers  frames 

2
ฉันจะบังคับให้บัฟเฟอร์เฉพาะเปิดในหน้าต่างใหม่ได้อย่างไร
เมื่อคอมมิชชันการเปลี่ยนแปลงใน Magit มันมีประโยชน์ที่จะเปิดมุมมอง diff ขณะที่เพิ่มรายละเอียดเกี่ยวกับการคอมมิท ใน Magit เราเห็น diff ใน*magit ..*บัฟเฟอร์ เมื่อคุณกดปุ่มccในขณะที่เคอร์เซอร์อยู่ในไฟล์Staged Magit คอมมิทบัฟเฟอร์.. COMMIT_EDITMSGจะปรากฏขึ้น โดยค่าเริ่มต้นบัฟเฟอร์ใหม่นี้แทนที่*magit ..*บัฟเฟอร์ที่แสดงการกระทำที่แตกต่าง คำถาม - ฉันจะทำให้.. COMMIT_EDITMSGบัฟเฟอร์เปิดในหน้าต่างใหม่ได้อย่างไร (ใช้หน้าต่างอื่นอีกครั้งหรือสร้างหน้าต่างใหม่หากเฟรมมีเพียง 1 หน้าต่างเพื่อเริ่มต้นด้วย) เพื่อให้ฉันเห็นทั้ง*magit ..*และ.. COMMIT_EDITMSGบัฟเฟอร์ได้อย่างไร
12 buffers  window  magit 

5
คืนค่าบัฟเฟอร์ที่เปิดอยู่ทั้งหมด (และละเว้นข้อผิดพลาด)
เมื่อทำงานในโครงการภายใต้การควบคุมเวอร์ชันด้วย git ฉันมักจะต้องการทำบางสิ่งในเชลล์ที่ส่งผลกระทบต่อไฟล์ที่เปิดอยู่ของฉันหลาย ๆ ครั้งจากนั้นย้อนกลับบัฟเฟอร์ทุกอันที่ฉันเปิดไว้เพื่อให้แน่ใจว่าฉันจะไม่ปิดบังเวอร์ชันใหม่โดยไม่ตั้งใจ ด้วยสิ่งที่ฉันได้เปิด ฉันรู้ว่าmagitมีประโยชน์ที่นี่ แต่ฉันคุ้นเคยกับเวิร์กโฟลว์ของฉันในเชลล์และฉันต้องการเก็บไว้ใช้ตอนนี้ ดังนั้นฉันต้องการที่จะคืนค่าบัฟเฟอร์ที่เปิดอยู่ทั้งหมดและอาจปิดรายการที่หยุดอยู่แล้ว (เช่นเนื่องจากgit checkoutสาขาที่ไม่มีไฟล์นั้นอีกต่อไป) ฉันมีตัวอย่างของ elisp ต่อไปนี้ที่ฉันคว้ามาจากการค้นหาของ Google: (defun revert-all-buffers () "Refreshes all open buffers from their respective files" (interactive) (let* ((list (buffer-list)) (buffer (car list))) (while buffer (when (and (buffer-file-name buffer) (not (buffer-modified-p buffer))) (set-buffer buffer) (revert-buffer t t t)) (setq list …

2
ทำรายการบัฟเฟอร์ให้โฟกัสหรือไม่
ฉันจะสร้างมันได้อย่างไรเมื่อฉันกดC-xC-bเพื่อเข้าถึงรายการบัฟเฟอร์ที่บัฟเฟอร์นั้นใช้โฟกัสโดยอัตโนมัติแทนที่จะต้องเปลี่ยนมันด้วยตนเองด้วยC-xo? ฉันไม่พบตัวแปรที่กำหนดค่านี้

2
ฉันจะทำให้ ibuffer รีเฟรชรายการบัฟเฟอร์อัตโนมัติได้อย่างไร
M-x ibuffer เลือกบัฟเฟอร์ ฆ่าบัฟเฟอร์นั้น หลังจากบัฟเฟอร์ถูกฆ่าแล้วบัฟเฟอร์ ibuffer จะปรากฏขึ้นอีกครั้ง แต่ก็ยังคงแสดงชื่อบัฟเฟอร์ที่ถูกฆ่าในขั้นตอนที่ 3 เป็นไปได้หรือไม่ที่จะให้ ibuffer รีเฟรชรายการบัฟเฟอร์อัตโนมัติ
11 buffers  ibuffer 

3
วิธีเพิ่มการประทับเวลาในแต่ละรายการในบัฟเฟอร์ * Messages * ของ Emacs?
ฉันขึ้นอยู่กับ*Messages*บัฟเฟอร์เป็นจำนวนมาก แต่รายการไม่ได้ประทับเวลา หนึ่งจะเพิ่มการประทับเวลาในแต่ละรายการในบัฟเฟอร์ข้อความของ Emacs ได้อย่างไร ดังนั้นสิ่งนี้: Loading /Users/gsl/lisp.d/init.el (source)... No outline structure detected For information about GNU Emacs and the GNU system, type C-h C-a. Loading /Users/gsl/lisp.d/var/recentf...done Error running timer: (wrong-number-of-arguments (lambda nil (setq gc-cons-threshold (* 64 1024 1024)) (message "WARNING: gc-cons-threshold restored to %S")) 1) [yas] Prepared just-in-time loading …

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