Emacs

คำถาม & คำตอบสำหรับผู้ใช้ขยายหรือพัฒนา Emacs


2
มีฟังก์ชั่นเพื่อแทรก `(kbd“ …”) ที่ถูกต้องโดยการกดปุ่มหรือไม่?
ฉันเบื่อที่จะค้นหาชื่อคีย์สำหรับkbdฟังก์ชั่นมีวิธีแทรกชื่อคีย์ที่ถูกต้องโดยอัตโนมัติเพียงแค่กดปุ่มหรือไม่? ตัวอย่างเช่นฉันต้องการทำสิ่งนี้: ฉันกำลังพิมพ์ (local-set-key | ฉันวิ่งmagical-insert-kbd-commandกด f6 แล้วฉันจะได้ (local-set-key (kbd "<f6>") |



2
แสดงรายการคำศัพท์ที่ด้านล่างของเฟรมหรือไม่
ฉันต้องการแสดงคำศัพท์ 3 รายการในบรรทัดแยกกันตามแนวนอนที่ด้านล่าง (แม้ว่าส่วนบนก็ใช้ได้เช่นกัน) ของ emacs ทุกเฟรมที่ฉันเปิด ฉันคิดว่า 6 วิธีในการทำเช่นนี้และพวกเขาทั้งหมดมีปัญหา: ความคิดแรกของฉันคือการเพิ่มบรรทัดลงในบรรทัดโหมดของฉัน แต่ AFAICT คุณไม่สามารถใช้อักขระบรรทัดใหม่ในบรรทัดโหมดได้เพียงแค่ได้รับการแปลงเป็น "^ J" ความคิดที่สองของฉันคือการมีบรรทัดที่ด้านบนของหน้าจอและใช้บรรทัดส่วนหัว แต่ไม่รองรับอักขระขึ้นบรรทัดใหม่ ฉันสามารถแสดงโอเวอร์เลย์ในช่วง 3 บรรทัดสุดท้ายของหน้าต่างได้ แต่การทำให้สิ่งนี้ดูแข็งแกร่ง - การเลื่อนจะต้องถูกกระตุ้นเมื่อจุดถึงการวางซ้อนมากกว่าจุดสิ้นสุดของหน้าต่างจริงและฉันต้องเปลี่ยนตำแหน่งใหม่ตลอดเวลา การซ้อนทับเนื่องจากการวางซ้อนอยู่ในพื้นที่ข้อความไม่ใช่พื้นที่หน้าต่าง ฉันสามารถลองทำ windows เฉพาะที่ด้านล่างของเฟรม ฉันได้ลองโค้ดนี้แล้ว แต่มันก็ไม่แข็งแรงเหมือนกันดูเหมือนว่ามันจะทำงานไม่ถูกต้องเมื่อเฟรมมีหน้าต่างที่แยกออกไปแล้วและฉันต้องรีบูต Cx, 1 ถึงเวอร์ชันลบที่กำหนดเองซึ่งไม่สนใจ หน้าต่างพิเศษของฉันและฉันแน่ใจว่ามีมุมอื่น ๆ นอกจากนี้เมื่อหน้าต่างความช่วยเหลือปรากฏขึ้นในขณะนี้หน้าต่างจะเปิดขึ้นในแนวตั้งเพราะคิดว่ามีการแบ่งตามแนวนอนอยู่แล้ว (ซึ่งในทางเทคนิคแล้วมี แต่จะแสดงหน้าต่างบรรทัดเดียวเท่านั้น) ฉันสามารถมีเฟรมเฉพาะสำหรับสิ่งนี้ได้ แต่จากนั้น config ของฉันจะไม่ทำงานในโหมดเทอร์มินัลและฉันต้องสคริปต์ตัวจัดการหน้าต่างของฉันเพื่อจัดการกับมันที่ด้านล่างของหน้าจอทำให้ไม่สามารถเลือกได้ ฯลฯ ฉันสามารถแทรกข้อความ 3 บรรทัดลงใน minibuffer โดยตรง ตอนนี้ฉันทำงานได้บางส่วนฉันสามารถเพิ่มรถมินิบัสเพื่อรองรับ 3 …

3
ทำไม lisp-interaction-mode มีอยู่และเราต้องการมันหรือไม่?
Q:ทำไมไม่lisp-interaction-modeอยู่และจะมีเหตุผลใดที่จะใช้มันแทนemacs-lisp-mode? คู่มือระบุว่าemacs-lisp-modeและlisp-interaction-modeจะเหมือนกันยกเว้นว่าผูกหลังไปC-j eval-print-last-sexpนอกเหนือจากนั้น"คำสั่งอื่นทั้งหมดในโหมด Lisp Interaction นั้นเหมือนกับในโหมด Emacs Lisp" เท่าที่ฉันสามารถบอกได้มีเพียง*scratch*บัฟเฟอร์เท่านั้นที่ใช้โหมดหลัง มันทำให้ฉันรู้สึกแปลก ๆ ว่ามีโหมดทั้งหมดที่แตกต่างจากที่อื่นโดยการกดปุ่มเพียงครั้งเดียวดังนั้นฉันจึงสันนิษฐานว่าฉันไม่มีประวัติหรือบริบทบางอย่าง ดังนั้น: ทำไมจึงlisp-interaction-modeมีอยู่? ไม่นับการทำC-jพวงกุญแจมีสถานการณ์ใดบ้างที่เหมาะสมกว่าemacs-lisp-mode? จะมีผลใด ๆ ที่ไม่คาดคิดจากการเปลี่ยน*scratch*โหมดบัฟเฟอร์เป็นemacs-lisp-modeหรือไม่? แรงจูงใจสำหรับคำถามนี้คือตอนนี้ฉันผูกกุญแจสองครั้ง (ในสองโหมด) เพื่อให้*scratch*บัฟเฟอร์ของฉันทำงานเหมือนกับบัฟเฟอร์ที่ไปที่*.elไฟล์ หากไม่มีเหตุผลเชิงปฏิบัติที่จะต้องรักษาlisp-interaction-modeฉันจะ(setq initial-major-mode 'emacs-lisp-mode)ทำมันให้สำเร็จ

3
มีตัวเลือกสีสำหรับ Emacs หรือไม่?
ฉันใช้สุดยอดเยี่ยมrainbow-modeเพื่อเน้นสีในไฟล์ CSS อย่างไรก็ตามสิ่งนี้ถือว่าฉันรู้ว่าฉันต้องการสีอะไร มีตัวเลือกสีที่ฉันสามารถใช้สำหรับการแก้ไข CSS ใน Emacs หรือไม่ เป็นการดีที่ฉันจะชอบสิ่งที่ฉันสามารถทำให้สีเข้มขึ้น / สว่างขึ้น / แดง / เขียวขึ้นเล็กน้อยเช่นตัวเลือกสี Firefox: หรือฉันสังเกตเห็นว่าcustomize-faceมีตัวเลือกสีจากชุด 548 สี ฉันสามารถใช้สิ่งนี้กับ CSS ได้หรือไม่?
20 colors 

3
ธีมที่แตกต่างกันสำหรับเทอร์มินัลและเฟรมกราฟิกเมื่อใช้ Emacs daemon
ฉันพยายามที่จะบรรลุพฤติกรรมดังต่อไปนี้ใน Emacs24: ฉันชอบที่จะใช้ชุดรูปแบบที่แตกต่างกัน (solarized-dark เทียบกับ solarized-light) ขึ้นอยู่กับว่าฉันเชื่อมต่อกับเซิร์ฟเวอร์ที่รันด้วยเฟรมเทอร์มินัล % emacsclient -t หรือด้วยเฟรม gtk % emacsclient -c ดูเหมือนว่าจะทำงานใน Emacs รุ่นเก่า แต่ Emacs ปัจจุบันฉันไม่สามารถหาวิธีได้ ฉันตรวจสอบแล้ว alreday ดังนั้น (เช่น/programming//q/18904529/152439และคำตอบ) และรายชื่อผู้รับจดหมาย (เช่นhttps://lists.gnu.org/archive/html/help-gnu-emacs/ 2012-02 / msg00227.htmlและhttps://lists.gnu.org/archive/html/help-gnu-emacs/2012-02/msg00237.html ) การตั้งค่าปัจจุบันของฉันมีลักษณะดังนี้: (add-to-list 'custom-theme-load-path "~/.emacs.d/themes/solarized") (if (daemonp) (add-hook 'after-make-frame-functions (lambda (frame) (select-frame frame) (if (display-graphic-p frame) (load-theme 'solarized-light t) (load-theme …
20 frames  daemon  themes 

4
ย่อ / ขยาย / ย่อขนาดภาพในโหมดรูปภาพ
ด้วย doc-view-mode ของ Emacs ฉันสามารถย่อ / ขยาย / ฯลฯ PDF ได้อย่างง่ายดายอย่างไรก็ตามฉันต้องการทำสิ่งเดียวกันกับรูปภาพ ขณะนี้เมื่อฉันเปิดภาพฉันไม่สามารถปรับระดับการซูมเพื่อให้พอดีกับเฟรม ฉันรู้ว่ามีimage-mode-fit-frameแต่มันไม่ได้ช่วยเมื่อภาพมีขนาดใหญ่กว่าหน้าจอของฉัน มีแพ็คเกจหรือโหมดที่จะอนุญาตให้ฉันซูมเข้าหรือออกภาพหรือไม่?

1
วิธีการป้องกันไม่ให้ใบหน้ามีเลือดออกสู่บริเวณโดยรอบของบัฟเฟอร์?
ถาม:ฉันจะป้องกันไม่ให้org-modeใบหน้าลิงก์หลุดเข้าไปใน...ตัวละครที่เลือกได้ที่ส่วนท้ายของส่วนหัวแบบพับได้อย่างไร นี่คือเห็บภาพที่ทำให้ฉันบ้าเล็กน้อย เมื่อในorg-modeการเชื่อมโยงเป็นสิ่งสุดท้ายในบรรทัดการเชื่อมโยงที่หน้าซีดลงใน...ที่ระบุว่าส่วนหัวจะพับขึ้น หากมีการพูดเว้นวรรคหลังลิงค์ไม่มีเลือดออก ภาพหน้าจอที่ฉันโพสต์แสดงให้เห็นถึงปัญหา บรรทัดที่สามเป็นบรรทัดที่มีปัญหาโดยไม่มีอักขระระหว่างจุดสิ้นสุดของลิงก์และจุดสิ้นสุดของบรรทัดในขณะที่บรรทัดที่สี่แสดงลิงค์ตามด้วยช่องว่าง: ก่อนอื่นทำไมสิ่งนี้ถึงเกิดขึ้น ประการที่สองและอีกหลายประเด็นฉันจะทำให้มันหยุดได้อย่างไร ปรับปรุง 1:ตามความคิดเห็นโพสต์ด้านล่างเป็นภาพหน้าจอของบัฟเฟอร์ที่มีส่วนหัวปิดและเปิด ฉันเปิด Emacs โดยไม่มีไฟล์ init (เช่น, emacs -Q), required org-mode และเปิดไฟล์ตัวอย่างนี้ ดังนั้น: ดูเหมือนจะไม่เป็นสิ่งที่น่ากลัวในการตั้งค่าของฉัน ส่วนหัวทั้งหมดปิด: ส่วนหัวทั้งหมดเปิดอยู่: ชุดรูปแบบที่ฉันใช้ด้านบนคือ inkpot ถึงแม้ว่าฉันจะได้รับปัญหาเดียวกันเมื่อใช้ชุดรูปแบบพลังงานแสงอาทิตย์รวมถึงชุดรูปแบบเริ่มต้น (เช่นในภาพหน้าจอใหม่) รุ่น Emacs คือ 24.3.1 ฉันได้รับผลลัพธ์เดียวกันเมื่อใช้ org รุ่น 7.9.3f (เช่นที่มาพร้อมกับ Emacs เวอร์ชันนั้น) รวมถึง 8.3beta UPDATE 2:นี่คือตัวอย่างการทำงานขั้นต่ำในการตอบกลับคำขอความคิดเห็น: * here's a header with a [[~/somefile.txt][link …
20 org-mode  faces 

4
ซ่อนหน้าต่างการรวบรวม *
มันน่ารำคาญที่เห็นหน้าต่างการคอมไพล์ปรากฏขึ้นเมื่อมันสำเร็จ วิธีลบโดยอัตโนมัติ ฉันต้องการเห็นมันแม้ว่าจะไม่ประสบความสำเร็จ

3
วิธีการแสดงเนื้อหาของ minibuffer ที่อยู่ตรงกลางเฟรม emacs?
เมื่อทำงานกับกรอบ Emacs ที่ขยายใหญ่สุดการมีเนื้อหาของ minibuffer / echo area แสดงที่ด้านล่างของหน้าจออาจมองเห็นได้ยาก แต่ยังทำให้โฟกัสข้อความที่แก้ไขเมื่อพิมพ์คำสั่ง - ซึ่งค่อนข้าง ปัญหาในแง่ของการใช้งาน มีวิธีการย้ายพื้นที่ minibuffer / echo ในศูนย์กลางของบัฟเฟอร์ emacs ปัจจุบันเหนือข้อความที่แก้ไขเมื่อมีการใช้งาน minibuffer หรือดีกว่าเพื่อจับเนื้อหาของ minibuffer และแสดงมันในศูนย์ ของบัฟเฟอร์ปัจจุบันขณะพิมพ์คำสั่งหรือไม่
20 minibuffer 

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


2
วิธีแสดงความแตกต่างระหว่างสองบัฟเฟอร์ด้วย“ ระดับอักขระ” ต่างกัน
เมื่อเปรียบเทียบสองบัฟเฟอร์สำหรับความแตกต่างM-x ediff-buffersไม่ได้ระบุอักขระเฉพาะที่เปลี่ยนแปลงภายในคำ (เช่น "ระดับอักขระ" แตกต่าง) เครื่องมือ diff ที่ทันสมัยส่วนใหญ่จะแสดงความแตกต่างภายในคำ Emacs ดูเหมือนจะหายไปคุณสมบัติที่สำคัญ (หรือเห็นได้ชัดว่ามีประโยชน์?) โดยค่าเริ่มต้น ฉันจะทำให้ Emacs แสดงส่วนต่างได้อย่างไร? อัปเดตที่ นี่M-x ediff-buffers diff1 diff2โดยใช้emacs -Qเพื่อให้แน่ใจว่าธีมของฉันไม่รบกวน: นี่คือข้อความเดียวกันที่วางลงใน Meld:
20 ediff  diff-mode 

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