Emacs

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

4
Emacs Package Repositories แตกต่างกันอย่างไร
ฉันสังเกตเห็นว่ามีที่เก็บหลายแห่งที่มักจะมีซอฟต์แวร์เดียวกัน ทำไมฉันต้องการที่จะชอบ: GNU ELPA แยมผิวส้ม MELPA มากกว่าคนอื่น ๆ ? เนื่องจากที่เก็บหนึ่งแห่งไม่มีแพ็คเกจทั้งหมดที่ฉันต้องการมันเป็นความคิดที่ดีหรือไม่ที่เปิดใช้ที่เก็บเหล่านี้พร้อมกัน?

9
ฉันจะโหลดไฟล์ในบัฟเฟอร์ได้อย่างไร
ฉันมักจะทำงานกับไฟล์ที่มีการปรับปรุงในระบบไฟล์ผ่านการควบคุมเวอร์ชัน เป็นวิธีที่รวดเร็วในการโหลดไฟล์โดยไม่ต้องไปC-x C-fที่ไฟล์อีกครั้งและได้รับการถามว่าฉันต้องการที่จะโหลดมันคืออะไร?


4
ความแตกต่างระหว่าง Aquamacs และ Emacs รุ่น Mac อื่น ๆ คืออะไร?
ผู้ใช้ Macintosh มี Emac ที่สร้างไว้ล่วงหน้าหลายตัวเลือก ฉันรู้ถึงรุ่นต่อไปนี้: รุ่นของยามาโมโตะมิตซูฮารุ รุ่นของ David Caldwell รุ่นของ Vincent Goulet เวอร์ชัน Aquamacs ของ David Reitter คำถามที่ฉันมีอยู่ในใจ: รุ่นเหล่านี้แตกต่างกันอย่างไรในรูปแบบที่สำคัญ? หนึ่งสามารถรับฟังก์ชั่นของผู้อื่นโดยเพียงแค่ปรับเปลี่ยนไฟล์เริ่มต้นได้หรือไม่ การเปลี่ยนแปลงเหล่านี้ทำให้พวกเขากลับมาทางต้นน้ำหรือไม่? ฉันรู้ว่า Aquamacs นั้นถือว่า "ไม่เป็นทางการ" เนื่องจากมันมีปุ่มลัดเหมือน Mac แต่ฉันก็สนใจที่จะเข้าใจความแตกต่างระหว่างเวอร์ชันที่ไม่ใช่ Aquamacs
99 osx  aquamacs 

4
ฉันจะได้รับบรรทัดโหมดนักเล่นที่ใช้สีและสามเหลี่ยมทึบได้อย่างไร
ผู้คนโพสต์ภาพหน้าจอเป็นครั้งคราวด้วยโมเดลที่มีสีและรูปสามเหลี่ยมทึบ: ฉันจะทำซ้ำเอฟเฟกต์นี้ได้อย่างไร

13
วิธีสลับระหว่างหน้าต่างอย่างรวดเร็ว?
ฉันจะสลับระหว่างหน้าต่างอย่างรวดเร็วได้อย่างไร ฉันมักจะเปิดหน้าต่างหลายบานและจำเป็นต้องสลับระหว่างกัน ตอนนี้ฉันใช้C-x oเพื่อไปยังที่ที่ฉันต้องการ มีเวิร์กโฟลว์ที่มีประสิทธิภาพมากกว่านี้หรือไม่

3
วิธีผสานความขัดแย้งของ Git ใน Emacs
การผสาน Git ล่าสุดของฉันส่งผลให้เกิดความขัดแย้งจำนวนมาก แนวทางปัจจุบันของฉันคือค้นหาการเกิดขึ้นครั้งถัดไปของ '<<<' จากนั้นทำการผสานโดยการแก้ไขข้อความมาตรฐาน คำถาม : มีวิธีที่ Emacs สามารถรองรับการผสานโดยใช้ข้อมูลที่มีอยู่ใน Git เกี่ยวกับเวอร์ชันของฉันเวอร์ชันของพวกเขาและเวอร์ชันพื้นฐานของไฟล์ได้หรือไม่ แก้ไข: คำถามนี้มีขอบเขตที่แตกต่างจากคำถามที่เกี่ยวข้องเนื่องจากไม่ จำกัด การเรียกใช้ ediff
84 git 

7
ฉันจะได้ไม้บรรทัดที่คอลัมน์ 80 ได้อย่างไร
ในฐานะโปรแกรมเมอร์ฉันต้องการเห็นไม้บรรทัดที่คอลัมน์เฉพาะ (ปกติ 80) ทั้งคู่ดังนั้นฉันเห็นเมื่อฉันข้ามคอลัมน์นั้น แต่ยังเพื่อดูว่าฉันเข้าใกล้มันมากแค่ไหนเพื่อให้ฉันสามารถฟอร์แมตโค้ดใหม่ได้เร็วขึ้น ตัวเลือกที่ฉันพบจนถึงขณะนี้ทั้งหมดไม่บรรลุเป้าหมายนี้: whitespace-mode, column-enforce-modeและเพียงเน้นแต่ละแถวหลังข้อความในแถวได้ผ่านไปแล้วcolumn-marker fill-columnฉันต้องการที่จะเห็นเมื่อฉันเข้าใกล้คอลัมน์ไม่เพียง แต่เมื่อฉันข้ามมัน fill-column-indicatorจะเป็นทางออกที่ดีนอกจากจะแบ่งauto-complete-mode, company-mode, avyและอื่น ๆ เหล่านี้เป็นปัญหาที่ดูเหมือนยากที่จะแก้ไขที่กำหนดให้แต่ละวิธีแก้ปัญหาของแต่ละบุคคล - เช่นดูปัญหาและปัญหาหลังมากกว่าสองปี)company-modeauto-complete-mode มีทางเลือกที่ดีกว่านี้อีกไหม?

5
การอ่านและเขียนอีเมลด้วย emacs
เราจะใช้ emacs เพื่ออ่านและเขียนอีเมลได้อย่างไร คำถามนี้มีจุดประสงค์เพื่อให้เป็นจุดเชื่อมโยงไปยังที่ยอมรับสำหรับผู้ใช้ที่ต้องการจัดการอีเมลโดยใช้ emacs กรุณาโพสต์หนึ่งแพ็คเกจ / โซลูชันต่อคำตอบเท่านั้นโดยมีรายละเอียดมากที่สุด ข้อมูลที่อาจเป็นประโยชน์รวมถึง: ข้อกำหนด, สภาพแวดล้อมที่รองรับ วิธีการที่รองรับ (อ่านและ / หรือส่ง) โปรโตคอลที่รองรับ (ป๊อป, imap, smtp, การตั้งค่าเมลท้องถิ่น ... ) รับรองความถูกต้องได้รับการสนับสนุน ที่เก็บรหัสผ่าน (ไม่มีข้อความธรรมดาเข้าถึงกระเป๋าเงินภายนอก ... ) การสนับสนุนออฟไลน์ (ไม่มีแคชที่เข้มงวด, ตามคำขอ ... ) มันง่ายแค่ไหนที่จะใช้สิ่งที่แนบมา? (เพิ่มด้วยการลากและวางดาวน์โหลดเปิดด้วย emacs หรือแอปพลิเคชันอื่น ... ) คำแนะนำในการตั้งค่า (ยิ่งมีรายละเอียดดีกว่า) ภาพหน้าจอ ... รองรับคุณสมบัติอีเมลเพิ่มเติม (การเก็บถาวรการกรองโฟลเดอร์) รองรับฟีเจอร์ที่เกี่ยวข้องเพิ่มเติม (ผู้ติดต่อ, ฟีด RSS) ... ไม่จำเป็นต้องมีรายละเอียดมากเกินไปที่นี่ขึ้นอยู่กับว่าเกี่ยวข้องกับฟีเจอร์นี้อย่างไรกับอีเมล ...
77 email 

10
ฉันจะป้องกันไม่ให้สายยาวมาก ๆ ทำให้ Emacs ทำงานช้าได้อย่างไร
ฉันเห็นประสิทธิภาพที่หลากหลายขึ้นอยู่กับจำนวนบรรทัดใหม่ที่มีในไฟล์ที่ฉันกำลังเยี่ยมชม นี่คือตัวอย่าง ฉันมีไฟล์ JSON สองไฟล์: $ wget https://github.com/Wilfred/ReVo-utilities/blob/a4bdc40dd2656c496defc461fc19c403c8306d9f/revo-export/dictionary.json?raw=true -O one_line.json $ python -m json.tool <one_line.json >pretty_printed.json นี่เป็นไฟล์ JSON สองไฟล์ที่มีเนื้อหาเดียวกัน one_line.jsonคือ 18MiB ของ JSON โดยไม่มีการขึ้นบรรทัดใหม่ pretty_printed.jsonมีการขึ้นบรรทัดใหม่และเพิ่มช่องว่างทำให้ 41MiB อย่างไรก็ตามไฟล์ที่ใหญ่กว่าที่แบ่งออกเป็นหลายบรรทัดนั้นเร็วกว่ามากที่จะเปิดใน Emacs ทั้งในโหมด Javascript และโหมด Fundamental ทำไม Emacs ถึงมีประสิทธิภาพต่ำเช่นนี้เนื่องจากมีความยาวน้อยกว่าจริง ๆ ? มีอะไรที่ฉันสามารถทำได้เพื่อปรับปรุงประสิทธิภาพโดยไม่ต้องฟอร์แมตข้อมูลภายนอก Emacs หรือไม่?

4
ข้อดีของการตั้งค่าตัวแปรด้วย setq แทนที่จะเป็น custom.el?
ฉันเห็นคนจำนวนมาก (ผู้เขียนส่วนขยายและคนอื่น ๆ ) ให้ตัวอย่างการกำหนดค่าด้วยsetq: (setq foo 'bar) พารามิเตอร์เหล่านี้มักจะถูกกำหนดด้วยทำให้พวกเขาสามารถใช้ได้สำหรับการปรับแต่งผ่านdefcustomcustom.el ฉันมักจะใช้custom.elเพื่อตั้งค่าพวกเขา จะมีข้อได้เปรียบใด ๆ ในการใช้งานsetqแทนหรือว่าทั้งสองวิธีนั้นเทียบเท่ากันหรือไม่

18
ฉันจะเปลี่ยนบัฟเฟอร์ได้อย่างรวดเร็วได้อย่างไร
ใน Vanilla Emacs ฉันต้องทำC-x bแล้วพิมพ์ชื่อบัฟเฟอร์เพื่อสลับ ถ้าฉันลืมชื่อของบัฟเฟอร์ฉันต้องกดปุ่มTABเพื่อแสดงรายการความสำเร็จที่เป็นไปได้ มีอะไรที่ฉันสามารถทำได้เพื่อทำให้กระบวนการนี้เร็วขึ้นหรือไม่?

8
ฉันควร / ไม่ควรทำอะไรเมื่อรักษา. emacs และ. emacs.d ในการควบคุมเวอร์ชัน?
เช่นเดียวกับหลาย ๆ คนฉันจัดการ dotfiles จำนวนมากผ่านที่เก็บข้อมูลการควบคุมเวอร์ชัน (Mercurial บน Bitbucket ส่วนตัวในกรณีของฉัน) สิ่งนี้มีประโยชน์เมื่อตั้งค่าเครื่องใหม่หรือเผยแพร่การกำหนดค่าระหว่างเครื่องต่างๆ ดังนั้นโดยธรรมชาติฉันเพิ่มของฉัน.emacsและ.emacs.dการตั้งค่านี้ จากนั้นฉันติดตั้งแพคเกจบางรายการและลงเอยด้วยการเพิ่ม*.elcลงในไฟล์ของฉัน.hgignoreเช่นเดียวกับที่ฉันละเว้น*.pycไฟล์จาก Python repos มีสิ่งอื่นใดอีกที่ฉันไม่ควรติดตามเช่นไฟล์ที่สร้างขึ้นซึ่งเฉพาะสภาพแวดล้อมและจะไม่เป็นประโยชน์ / ถูกต้องเมื่อถูกโคลนไปยังแพลตฟอร์มอื่นหรือไม่? (ฉันใช้ Linux และ OS X บนเดสก์ท็อปและ FreeBSD บนเซิร์ฟเวอร์) มีเทคนิคการตั้งค่าที่ใช้กันโดยทั่วไปเพื่อให้การแบ่งปันประเภทนี้มีค่ามากขึ้นหรือไม่? ด้วยการตั้งค่าไฟล์เปลือกของฉันฉันยังคงมองหาวิธีที่ดีในการเลือกไฟล์แต่ละไฟล์ในแต่ละสาขา

6
ฉันจะเพิ่มขนาด Emacs ของฉันให้มากที่สุดได้อย่างไรเมื่อเริ่มใช้งาน
มีวิธีเพิ่มหน้าต่างของฉันให้ใหญ่ที่สุดเมื่อเปิดเครื่องไหม? ขณะนี้ฉันกดControl+ + Upบนแป้นพิมพ์ของฉัน แต่มันก็น่ารำคาญมากที่จะทำเช่นนั้นทุกครั้ง ฉันใช้ Emacs 24.4 บน Ubuntu 12.04
65 frames 

4
ฉันจะทราบได้อย่างไรว่าคีย์คีย์ใดถูกผูกไว้?
ฉันรีบาวน์ปุ่ม 'd' gnus-article-modeแต่พฤติกรรมเก่าของมันยังคงทำงานอยู่เมื่อมีสิ่งที่แนบมา ฉันสามารถเห็นได้ว่าการปฏิเสธไม่ได้มีผลโดยทำC-h k dแต่ก็ไม่ได้บอกฉันว่าคีย์แมปมีผลอย่างไร ณ จุดนั้นเพื่อที่ฉันจะได้สามารถปฏิเสธได้ มีวิธีที่จะค้นหามันได้หรือไม่? นี่คือตัวอย่างที่ชัดเจน: ฉันใช้ความชั่วร้ายและฉันต้องการให้บทความอยู่ในโหมดเคลื่อนไหว สำหรับรูปแบบแป้นพิมพ์ของฉันฉันได้กำหนดค่า 'd' เป็นคีย์เพื่อขึ้น (evil-mode 1) (add-to-list 'evil-motion-state-modes 'gnus-article-mode) (setq evil-emacs-state-modes (remove 'gnus-article-mode evil-emacs-state-modes)) (define-key evil-motion-state-map "d" 'evil-previous-line) เพื่อให้แน่ใจว่าคำนึงถึงกุญแจความชั่วร้ายฉันได้ยกเลิกการตั้งค่า gnus ในแผนที่ท้องถิ่น: (defun as/alter-article-evil-map () (local-unset-key "d")) (add-hook 'gnus-article-mode-hook 'as/alter-article-evil-map) แต่น่าเสียดายที่เมื่อจุดอยู่ในสิ่งที่แนบมาคีย์ 'd' จะไม่เพิ่มขึ้นอีกต่อไป แต่ให้ฉันลบสิ่งที่แนบมา ฉันเดาว่าการเชื่อมโยงอื่นกำลังทำงานอยู่ ณ จุดนั้นดังนั้นคำถาม การแก้ไขฉันใช้keymaps-at-pointด้านล่างเพื่อค้นหา keymap ที่ใช้มาจากคุณสมบัติข้อความ จากนั้นฉันก็ดูโค้ดของฟังก์ชั่นที่ถูกผูกไว้เพื่อค้นหาชื่อของคีย์แมgnus-mime-button-mapป ...

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