คำถามติดแท็ก init-file

สำหรับคำถามเกี่ยวกับไฟล์การเริ่มต้น `. emacs` หรือ` init.el อย่าใช้แท็กนี้หากคุณคิดว่าคำตอบต้องใช้ไฟล์เริ่มต้นที่ปรับแต่งได้เนื่องจากโซลูชันจำนวนมากไม่เกี่ยวข้องกับการจัดการไฟล์เริ่มต้นโดยตรง


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

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

10
วิธีเริ่มต้น emacs ด้วย user-emacs-directory ที่กำหนดเอง
ฉันกำลังทำงานกับการกำหนดค่า Emacs ที่กำหนดเองและขนาดเล็กที่ฉันต้องการแบ่งปันกับเพื่อน ๆ ในฐานะที่เก็บ git สำหรับพวกเขาเพื่อใช้เป็นพื้นฐานสำหรับการกำหนดค่าในอนาคตของพวกเขาเอง สำหรับสิ่งนี้ฉันต้องการวิธีทดสอบการกำหนดค่าของฉันและวิธีที่ง่ายที่สุดที่ฉันสามารถหาได้คือ: $ emacs --eval "(setq user-emacs-directory \"~/Code/my_custom_emacs.d/\")" แต่ฉันไม่สามารถทำงานได้ ความช่วยเหลือใด ๆ ที่ชื่นชมมาก
58 init-file 

12
ซิงโครไนซ์แพ็คเกจระหว่างเครื่องต่าง ๆ
ฉันใช้ emacs ในที่ต่าง ๆ และฉันต้องการติดตั้งและติดตั้งแพคเกจที่คล้ายคลึงกันทุกที่ ฉันเดาว่าฉันสามารถใช้ที่เก็บข้อมูลการควบคุมเวอร์ชันสำหรับไฟล์ติดตั้ง ตั้งแต่ฉันใช้โหมโรงนั่นก็จะเป็น~/.emacs.d/personal/เช่นนั้น ฉันไม่รู้ว่าจะทำอย่างไรกับแพ็คเกจ มีไฟล์อยู่ใน.emacs.d/รายการแพคเกจที่ติดตั้งซึ่งฉันสามารถใช้ทำ emacs ในเครื่องอื่น ๆ เพื่อติดตั้งไฟล์เหล่านั้นด้วยหรือไม่

3
ฉันจะทำอย่างไรเพื่อเร่งความเร็วการเริ่มต้นใช้งาน
ฉันสามารถทำสิ่งพื้นฐานบางอย่างเพื่อลดเวลาเริ่มต้นได้อย่างไร มีสิ่งใดที่ฉันควรให้ความสนใจเป็นพิเศษ หมายเหตุ: เวลาเริ่มต้นสามารถลดลงได้โดยการเริ่มต้น Emacs น้อยลง (หนึ่งครั้งต่อเซสชัน) และการเปิดไฟล์ในอินสแตนซ์ที่กำลังทำงานอยู่ คำถามนี้เกี่ยวกับการลดเวลาเริ่มต้นให้น้อยที่สุดสำหรับการเริ่มเซสชันหรือเวลาอื่น ๆ เมื่อจำเป็นต้องเริ่มต้น Emacs ดูคำถามเดียวกันที่ได้รับการตอบใน Stack Overflow พร้อมกับคำถามและคำตอบคะแนนมากกว่าบุ๊คมาร์ค "ที่ชื่นชอบ" กว่า 50 และ 30 คำตอบที่ดีที่นี่ควรเป็นมากกว่าสิ่งที่มีอยู่ใน Stack Overflow

6
การเรียกใช้ spacemacs ข้าง emacs ปกติ: วิธีแยก. emacs.d แยกต่างหาก
ฉันต้องการลองใช้ spacemacs แต่ฉันยังไม่ต้องการเปลี่ยนจากการกำหนดค่า emacs ปกติของฉันดังนั้นฉันต้องการให้การกำหนดค่าที่อยู่ในของฉัน.emacs.dอยู่ในไดเรกทอรีเดียวและการกำหนดค่าที่เทียบเท่าสำหรับ spacemacs จะอยู่ในไดเรกทอรีอื่น ฉันไม่สนใจว่าชื่อใดไดเรกทอรีใดมี เป็นไปได้หรือไม่ที่ chroots / LD_PRELOAD / กลอุบายอื่น ๆ ฉันจะทำมันได้อย่างไร

12
จัดระเบียบเนื้อหาของ ~ / .emacs.d / init.el และ ~ / emacs.d หรือไม่
เมื่อเราเพิ่มบรรทัดมากขึ้นเรื่อย~/.emacs.d/init.elๆ เพื่อวัตถุประสงค์ต่าง ๆ (สำหรับ python-mode, สำหรับ emacs-eclim, สำหรับ ... ) ไฟล์จะยาวและอ่านได้น้อยลง มีวิธีในการช่วยจัดระเบียบเนื้อหาหรือไม่ ปัจจุบันของฉัน~/.emacs.dดูเหมือนว่านี้ $ ls * init.el auto-save-list: elisp: python-mode.el-6.1.3 elpa: archives auctex-readme.txt s-20140910.334 auctex-11.87.7 emacs-eclim-20140809.207 eshell: history python-mode.el-6.1.3ได้รับการติดตั้งด้วยตนเองในขณะที่ emacs-eclim-20140809.207ถูกติดตั้งด้วยelpaและผมไม่แน่ใจ 100% ว่าสิ่งอื่น ๆ ที่อยู่ภายใต้ได้โดยelpa/ elpaฉันจะจัดระเบียบเนื้อหาของได้~/.emacs.d/อย่างไร
28 init-file 

2
วิธีที่เร็วที่สุดในการโหลดไฟล์. emacs ของฉันคืออะไรเมื่อฉันทำการเปลี่ยนแปลงดังนั้นบัฟเฟอร์ที่ได้รับผลกระทบทั้งหมดของฉันจะรับการเปลี่ยนแปลงเหล่านั้น
ฉันรู้ว่าC-x C-eสิ่งใดeval-last-sexpและM-x eval-bufferสิ่งเหล่านี้ แต่ไม่เพียงพอที่จะรับการเปลี่ยนแปลงทั้งหมด บางครั้งคุณต้องปิดบัฟเฟอร์จริงที่อยู่ในโหมดที่เปลี่ยนการตั้งค่าและบางครั้งคุณต้องรีสตาร์ท emacs ทั้งหมด มีวิธีทั่วไปในการจัดการปัญหานี้มากขึ้นหรือไม่? อีกวิธีหนึ่งมีวิธีในการเริ่มต้นใหม่ emacs โดยไม่สูญเสียบัฟเฟอร์ที่เปิดอยู่และประวัติโต้ตอบ?

5
Emacs จะไม่โหลดธีมเมื่อเริ่มต้น
ฉันติดตั้งแพคเกจชุดพลังงานแสงอาทิตย์ผ่าน MELPA ฉันสามารถเลือกหนึ่งในสองธีมโซลาร์เซลล์ผ่าน `ปรับแต่งธีมและเปิดใช้งานมัน เมื่อฉันบันทึกการตั้งค่าธีมมันเพิ่มสิ่งต่อไปนี้ในไฟล์ init.el ของฉัน: (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. …
21 init-file  themes 

1
ฉันจะแก้ไขปัญหา Emacs ได้อย่างไร
ในสถานการณ์ที่ Emacs ไม่ทำงานเหมือนที่ฉันต้องการฉันจะแก้ไขปัญหาได้อย่างไร ฉันจะใช้ขั้นตอนอะไรในการค้นหาและแก้ไขปัญหาด้วยตนเอง หรือล้มเหลวฉันจะรวบรวมข้อมูลที่เป็นประโยชน์เพื่อให้ผู้คนที่นี่ (หรือในรายชื่อผู้รับจดหมายหรือฟอรัมอื่น ๆ ) สามารถช่วยฉันแก้ปัญหาได้อย่างไร Emacs ของฉันมีแพ็คเกจมากมายสำเนาของตัวอย่าง & วาง (หรือถูกฆ่า & ดึง) จากทั่วอินเทอร์เน็ตและอิลิสที่กำหนดเองของฉันซึ่งฉันจำไม่ได้ว่าเป็นงานเขียนหรือไม่เข้าใจอีกต่อไป มีวิธีที่จะทำให้ความรู้สึกของภาวะแทรกซ้อนเหล่านี้ทั้งหมดหรือไม่?

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

4
วิธีการตั้งค่าหน้าต่างเริ่มต้นเมื่อเริ่มต้น?
ทุกครั้งที่ฉันเปิด Emacs ฉันมักจะตั้งค่า 3 windows โดยทำC-x 3( split-window-right) และจากนั้นC-x2( split-window-below) หลังจากนั้นฉันต้องสลับไปที่แต่ละหน้าต่างเพื่อเปิดไฟล์ที่ฉันต้องการแก้ไข ฉันจะตั้งสิ่งนี้ให้ทำโดยอัตโนมัติได้อย่างไร มีวิธีให้ Emacs กู้คืนการจัดหน้าจอเดียวกัน (windows และไฟล์) จากการใช้งานครั้งสุดท้ายหรือไม่?

2
ฉันจะเลิกพฤติกรรมใน Evil ได้อย่างไรเหมือนกับ Vim
พฤติกรรมการเลิกทำที่เป็นค่าเริ่มต้นใน Evil นั้นหยาบเกินไปเพราะจะพิจารณาสิ่งใด ๆ ที่เกิดขึ้นระหว่างการเข้าสู่โหมดแทรกและปล่อยให้มันเป็นการดำเนินการแก้ไขเดียว เมื่อคุณป้อนทั้งย่อหน้าของข้อความในระหว่างการแทรกหนึ่งครั้งจากนั้นดำเนินการเลิกทำทั้งย่อหน้าจะถูกลบออก ในทางตรงกันข้าม Vim จะเริ่มการเลิกทำหน่วยใหม่เมื่อใดก็ตามที่คุณเลื่อนเคอร์เซอร์ในโหมดแทรกโดยใช้วิธีอื่นนอกเหนือจากการป้อนข้อความ Evil มีตัวแปรการปรับแต่งที่สามารถใช้เพื่อรับประวัติเลิกทำที่ละเอียดยิ่งขึ้น: (setq evil-want-fine-undo t) ด้วยการตั้งค่านี้ Evil จะเริ่มการเลิกทำหน่วยใหม่เมื่อเคอร์เซอร์ถูกย้ายในโหมดแทรกเช่นเดียวกับ Vim อย่างไรก็ตามการตั้งค่านี้ยังยุ่งกับวิธีการจัดการการแทนที่: หากคุณแทนที่คำที่ใช้cwคุณต้องเลิกทำสองครั้งเพื่อคืนค่าคำเดิม: หนึ่งครั้งสำหรับการลบคำใหม่และอีกครั้งสำหรับการแทรกคำเดิม สิ่งนี้ไม่สอดคล้องกับ Vim และไม่สมเหตุสมผลเนื่องจากการแทนที่ควรเป็นแบบอะตอมมิก คำถาม: ฉันจะกำหนดค่า Evil และ undo-tree ได้อย่างไรเพื่อรับพฤติกรรมการยกเลิกของ Vim

3
เหตุใดฉันต้องเพิ่มแต่ละแพ็คเกจลงในโหลดพา ธ (หรือมีปัญหากับ 'แพ็คเกจในไฟล์ init ของฉัน)
ทุกครั้งที่ฉันติดตั้งแพคเกจจากเมนูแพคเกจถ้าฉันลองrequireมันในไฟล์ init ของฉันฉันจะได้รับข้อผิดพลาดยกเว้นว่าฉันจะเพิ่มมันลงในเส้นทางโหลดด้วยตนเอง: (add-to-list 'load-path "/home/nick/.emacs.d/elpa/use-package-20141220.1645") (require 'use-package-autoloads) (require 'use-package) นั่นน่าเบื่อ และโดยปกติเส้นทางแพคเกจประกอบด้วยหมายเลขรุ่น หากมีการอัปเดตแพ็คเกจฉันต้องแก้ไขเส้นทางโหลดด้วยตนเอง มีวิธีใดที่จะทำให้สิ่งนี้เป็นแบบอัตโนมัติหรือไม่?

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