Emacs

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

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) นั่นน่าเบื่อ และโดยปกติเส้นทางแพคเกจประกอบด้วยหมายเลขรุ่น หากมีการอัปเดตแพ็คเกจฉันต้องแก้ไขเส้นทางโหลดด้วยตนเอง มีวิธีใดที่จะทำให้สิ่งนี้เป็นแบบอัตโนมัติหรือไม่?

1
เครื่องมือที่ดีสำหรับการพัฒนาแพ็คเกจ Emacs คืออะไร? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา เรามีคำถามเกี่ยวกับเครื่องมือที่มีประโยชน์สำหรับการทดสอบโดยเฉพาะแต่สิ่งที่เกี่ยวกับการเขียนรหัสจริงหรือ แพ็คเกจใดที่คุณพบว่าช่วยให้การพัฒนาของคุณเร็วขึ้น? ตัวช่วยใดที่คุณใช้เพื่อนำทางและเข้าใจโครงการของคุณอย่างรวดเร็วและง่ายดาย?

3
รับจำนวนการเกิดขึ้นในระหว่างการค้นหาที่เพิ่มขึ้น (Cs / isearch-forward)
แรงบันดาลใจจากเบราว์เซอร์ที่ทันสมัยฉันชอบที่จะเห็นว่ามีสตริงเกิดขึ้นกี่ครั้งเมื่อฉันค้นหามันเช่น "10 จาก 37" ที่มุมขวาบนของภาพด้านล่าง มีวิธีรับสิ่งนี้ใน Emacs หรือไม่? สันนิษฐานว่าเพื่อที่จะไม่ช้ามันควรจะทำงานหลังจากเวลาว่าง
17 search 


1
Emacs Lisp แบบแผนข้อคิดเห็น
ภาคผนวก D.7คู่มืออ้างอิงของ Emacs Lisp กล่าวถึงเคล็ดลับความคิดเห็น: ;ควรใช้เซมิโคลอนเดี่ยว ( ) สำหรับความคิดเห็นแบบอินไลน์ ;;ควรใช้เครื่องหมายอัฒภาคคู่ ( ) เพื่อแสดงความคิดเห็นในบรรทัด ;;;ควรใช้เครื่องหมายอัฒภาค ( ) สำหรับ "ความคิดเห็นซึ่งควรพิจารณาหัวข้อโดยใช้โหมดย่อย" ;;;;ควรใช้เซมิโคลอนสี่ส่วน ( ) สำหรับส่วนหัวของส่วนสำคัญของโปรแกรม กรณีการใช้เครื่องหมายอัฒภาคเดี่ยวและคู่นั้นชัดเจน แต่ดูเหมือนจะไม่มีการแบ่งแยกที่ชัดเจนระหว่างอัฒภาคสามและสี่เท่า โดยเฉพาะอย่างยิ่งเอกสารมาตรฐานสำหรับแพ็คเกจ Emacs ที่จัดทำโดยauto-insertใช้เครื่องหมายอัฒภาคสามตัวไม่ใช้เครื่องหมายอัฒภาคสี่เท่าแม้กระทั่งหัวเรื่องระดับสูงสุดเช่นชื่อไฟล์และส่วนสำคัญ ดูตัวอย่างด้านล่าง: ;;; test.el --- A test file. -*- lexical-binding: t; -*- ;; Copyright (C) 2016 ;; Author: John Smith ;; Keywords: ;; This …
17 elisp  comment 

2
Magit log date
ใน Magit log buffer commits (หนึ่งรายการต่อบรรทัด) จะแสดงด้วยวันที่สัมพันธ์ นี่เป็นสิ่งที่ดีสำหรับคอมมิทล่าสุด แต่ก็ไม่สมเหตุสมผลสำหรับการเปลี่ยนแปลงที่เก่ากว่า โดยเฉพาะอย่างยิ่งสิ่งนี้ทำให้ยากที่จะเกี่ยวข้องกับการกำหนดวันที่ไปยังวันที่ระบุเช่นการหาคำตอบสำหรับคำถาม "การเปลี่ยนแปลงใดที่อาจทำให้การวางจำหน่ายในวันที่ 3 เมษายน?" เป็นไปได้ไหมที่จะเปลี่ยนวิธีแสดงวันที่กระทำ ฉันเพิ่งค้นพบmagit-duration-specแต่นั่นไม่ใช่สิ่งที่ฉันต้องการ
17 magit 

8
วิธีการข้ามไปยังหัวข้อทั่วไปโดยตรงได้อย่างไร
หากฉันอยู่ในไฟล์ org ฉันต้องการคำสั่งที่ จำกัด รายชื่อผู้สมัครในสไตล์ ivy / helm ซึ่งประกอบด้วยพาดหัว org ทั้งหมดในไฟล์และให้ฉันเลือกพาดหัวผ่านการค้นหาคลุมเครือซึ่งฉันต้องการข้าม ถึง. มีวิธีทำเช่นนั้นหรือไม่?

4
Magit - วิธีการขยายทั้งหมดและยุบส่วนทั้งหมดใน magit-status
การกดTABไฟล์ที่ไม่มีการจัดเก็บไฟล์เดียวจะแสดงหรือซ่อนรายละเอียดที่เกี่ยวข้องกับไฟล์นั้น ฉันจะแสดง & ซ่อน (สลับ) รายละเอียดของไฟล์ที่ไม่จัดแบ่งได้ทั้งหมดในครั้งเดียวได้อย่างไร ผมไม่เจอร่างซ่อน-sublevels M-xผ่าน แต่ฉันต้องการทราบชุดคีย์เพื่อทำสิ่งนี้ในแบบสลับ ฉันพิมพ์?เพื่อตรวจสอบปุ่มลัดลัดสำหรับพื้นที่ magit-state แต่ไม่พบคำตอบ
17 magit 

2
ระเบียบเกี่ยวกับการใช้ Cx หรือ Cc เป็นคีย์คำนำหน้า
อะไรคือการประชุมสำหรับการใช้C-x, C-cหรือM-เป็นกุญแจคำนำหน้า? ตัวอย่างเช่น: คือC-xฯลฯ สำหรับการบันทึกหรือเยี่ยมชมบัฟเฟอร์? เป็นC-cเช่นสำหรับการแก้ไขข้อความหรือไม่? พื้นหลัง บางทีนี่อาจเป็นคำถามที่งี่เง่า ฉันใช้แป้นพิมพ์ภาษาสเปนและบางครั้งก็กำหนดปุ่มลัดที่ใช้กันทั่วไปสำหรับแป้นพิมพ์ภาษาอังกฤษ (QWERTY) ตัวอย่างเช่นคำสั่งของเชลล์ที่ถูกผูกไว้ในวานิลลา Emacs M-!ไป ฉันผูกมันM-¡แทนเพราะM-!เป็นM-shift-1สิ่งที่ฉันไม่สามารถกดได้อย่างง่ายดาย ฉันสงสัยว่ามีการประชุมที่ฉันจะเอาชนะเมื่อฉันทำการเปลี่ยนแปลงเหล่านี้

3
โหมด Daemon: เลื่อนการโต้ตอบให้แจ้งเมื่อเริ่มต้น
(โปรดทราบว่าชื่อตรงข้ามคำถามนี้ไม่เหมือนกับวิธีเริ่มต้นในโหมด daemon และระงับการโต้ตอบโต้ตอบ?เนื่องจากคำถามดังกล่าวถูก "ตอบ" โดยผู้ส่งกำจัดสิ่งที่ทำให้พรอมต์ปรากฏขึ้นโดยเฉพาะ) ฉันต้องการทราบว่ามีวิธีทั่วไปในการหลีกเลี่ยงการemacs --daemonแขวนตลอดไปรอคำตอบสำหรับการแจ้งให้แสดงใน minibuffer ที่ยังไม่มี เป็นไปไม่ได้ที่จะเชื่อมต่อกับ emacsclient เพื่อตอบคำถามเหล่านี้เนื่องจากเซิร์ฟเวอร์ไม่เริ่มทำงานจนกว่า Emacs จะเสร็จสิ้นการเริ่มต้นตามลำดับ (ซึ่งหมายความว่าหากคุณตั้งค่า ALTERNATE_EDITOR เป็นสตริงว่างซึ่งทำให้emacsclientไม่สามารถหาเซิร์ฟเวอร์เริ่มต้นภูตใหม่คุณสามารถจบลงด้วย Emacs daemons หลายตัวที่ติดอยู่และรอ) ฉันต้องkillall emacsแก้ไขปัญหา ก่อนดำเนินการต่อ ฉันสามารถเล่น whack-a-mole กับแต่ละสิ่งที่ก่อให้เกิดพรอมต์เมื่อเริ่มต้นเมื่อฉันระบุมัน (โดยการเริ่มต้น Emacs ในโหมดที่ไม่ใช่ daemon และเห็นสิ่งที่มันขอ) แต่มันไม่ใช่วิธีแก้ปัญหาเพราะมันไม่สามารถหยุด daemon ถัดไปได้ จากการหยุดทำงานเมื่อเริ่มต้นด้วยเหตุผลใหม่ เพื่อยกตัวอย่าง: เหตุผลทั่วไปที่มันจะหยุดทำงานหลังจากรีบูตระบบหรือ Emacs หยุดทำงานเมื่อ Emacs ที่ทำการบู๊ตครั้งแรกต้องการทราบว่าการขโมยล็อคไฟล์จาก Emacs ที่หมดอายุแล้วนั้นเป็นอย่างไร ฉันสามารถแก้ไขได้โดยสร้างคำแนะนำเพื่อให้พร้อมท์นั้นตอบ "ใช่" โดยไม่มีการโต้ตอบ แต่แล้วหนึ่งในไฟล์ที่ถูกเปิดในการบันทึกเซสชั่นก่อนหน้าคือไฟล์ TRAMP ที่ต้องใช้รหัสผ่าน sudo …

6
ฉันจะแก้ไขแพ็คเกจ Emacs ได้อย่างไร
ฉันต้องการแก้ไขแพ็คเกจทดสอบและหวังว่าจะส่งคำขอการดึงภายหลัง ฉันจะทำอย่างปลอดภัยและมีประสิทธิภาพได้อย่างไร คำถามอาจรู้สึกกว้างเกินไปฉันจะยอมรับคำตอบที่ครอบคลุมประเด็นต่อไปนี้: ฉันคาดว่าจะติดตั้งแยกสาขาของแพ็คเกจและสามารถสลับระหว่างมันและสาขาที่มั่นคงในราชประสงค์ด้วย recompilation ดำเนินการโดยอัตโนมัติเมื่อจำเป็น แต่package.elดูเหมือนจะไม่นำเสนอวิธีที่ตรงไปตรงมา คำตอบนี้บน emacs-SE บอกเราว่า“ถ้ามีการติดตั้งหลายสำเนาของแพคเกจแล้วคนแรกที่จะถูกโหลด” ดังนั้นฉันเดาหนึ่งได้ด้วยตนเองยุ่งกับload-pathแต่นี้ไม่ได้รู้สึกแข็งแกร่ง วิธีมาตรฐานในการเลือกแพ็คเกจรุ่นใดรุ่นหนึ่งในบรรดาแพ็คเกจที่ติดตั้งคืออะไร? แม้ว่าฉันจะสามารถเปิดเผยหลายสาขาไปยัง Emacs ได้ แต่สำหรับการปรับแต่งที่สำคัญฉันต้องตรวจสอบให้แน่ใจว่าสาขาที่ไม่ได้อัปเดตนั้น“ ไม่ได้โหลด” และผลข้างเคียงที่แยกได้ ไม่unload-featureจัดการนี้ถูกต้องหรือบางทีมันอาจจะมีนิสัยที่ทดสอบของแพคเกจหลาย versioned ทุกคนควรรู้เกี่ยวกับอะไร? ฉันจะติดตั้งและทดสอบเวอร์ชันในเครื่องได้อย่างไร คำตอบนั้นขึ้นอยู่กับว่าแพ็กเกจนั้นง่าย (= หนึ่งไฟล์) หรือหลายไฟล์ EmacsWiki พูดเกี่ยวกับแพ็คเกจที่หลากหลาย:“ MELPA สร้างแพ็คเกจสำหรับคุณ ” ฉันสงสัยว่าฉันต้อง (หรือควร) พูดคุยกับ MELPA ทุกครั้งที่ฉันเปลี่ยนdefunแบบฟอร์มในแพ็คเกจที่หลากหลาย แต่คำถามยังคงอยู่ อย่างน้อยฉันต้องบอกตัวจัดการแพคเกจเกี่ยวกับเวอร์ชันในเครื่องและถ้าเป็นเช่นนั้นฉันจะทำอย่างไร ฉันควรกำหนดชื่ออะไรให้กับแพ็คเกจในท้องถิ่น? สมมติว่าฉันต้องการทำงานกับคุณสมบัติหรือข้อบกพร่องหลายอย่างพร้อมกันซึ่งหมายความว่ามีหลายสาขา Emacs จะไม่อนุญาตให้ตั้งชื่อเวอร์ชันในลักษณะที่เป็นคำอธิบาย (ตามแนวของ20170117.666-somebugorfeature) ฉันเดาว่าฉันสามารถเปลี่ยนชื่อแพ็กเกจตัวเองคำต่อท้ายสาขา แต่อีกครั้งเช่นload-pathแฮ็คด้วยตนเองในไตรมาสที่ 1 นี่เป็นแฮ็คที่น่าเกลียดดังนั้นฉันจะไม่ลองกับสิ่งที่ฉันตั้งใจจะส่งอัปสตรีมเว้นแต่ว่าเป็นการปฏิบัติที่ยอมรับอย่างกว้างขวาง . คำถามที่อาจไร้เดียงสาเนื่องจากฉันไม่เคยเขียนแพทช์ไม่ได้ใช้กับ git …

1
การรวมปฏิทินในโหมดองค์กร
ปฏิทิน (เรียกใช้โดยM-x calendar) มีคุณสมบัติการรวมสมุดบันทึก ตามนี้หนึ่งสามารถดูวันพิเศษใด ๆ ในบัฟเฟอร์ปฏิทิน (วันจะมีสีถ้ามีบันทึกรายการในวันนั้น) dและดูรายละเอียดของรายการวันโดย เนื่องจากโหมดองค์กรยังมีคุณสมบัติของการประทับเวลาการรวมเข้ากับปฏิทินเช่นเดียวกับรายการไดอารี่จะดี ไม่จำเป็นต้องรวมเข้าด้วยcalendarกัน แต่มีบางสิ่งที่ทำให้สามารถดูวันที่ในรูปแบบปฏิทินจากนั้นเปิดมุมมองวันที่โดยละเอียดจากปฏิทินนั้น คำถาม: มีคุณสมบัติเช่นนี้หรือไม่?

2
เหตุใด (จุดต่ำสุด) จึงได้รับความนิยมมากกว่า 1
ฉันค้นหาไฟล์ Emacs Lisp ทั้งหมดใน repac Emacs Git และพบว่า(goto-char (point-min))เกิดขึ้น 3621 ครั้งและ(goto-char 1)เกิดขึ้น 31 ครั้ง โดยส่วนตัวแล้วฉันเห็นจำนวนมาก(point-min)แต่ไม่มีเลย1แม้แต่ในหลาย ๆ กรณีก็มั่นใจได้ 100% ว่าพื้นที่ไม่ได้ถูก จำกัด ดังนั้นนี่คือคำถามของฉัน: (point-min)ยังคงต้องการมากกว่า1แม้แต่ในบัฟเฟอร์ที่ไม่ จำกัด ? ฉันเดาว่า1เร็วกว่า(point-min)ไม่ว่ามันจะเป็นเรื่องเล็กน้อยเพียงใดเพราะ1เป็นค่าคงที่ในขณะที่(point-min)เรียกใช้ฟังก์ชัน นอกจาก1นี้สั้นกว่ามากคือ(point-min)1 ตัวอักษรกับ 11 ตัวอักษร
16 buffers 

4
วิธีรับสภาพแวดล้อม Emacs เดียวกันบนคอมพิวเตอร์เครื่องอื่น?
ฉันเป็นผู้เริ่มต้นใน Emacs (ใช้มันประมาณ 2 สัปดาห์แล้วและรักมัน) เมื่อฉันอัปเดตและขยาย~/.emacs.d/init.elไฟล์ของฉันสิ่งที่ฉันเขียนนั้นขึ้นอยู่กับแพ็คเกจที่ฉันติดตั้งจาก MELPA โดยใช้M-x package-installกับ.elไฟล์ที่ฉันเขียนเองเป็นต้น คำถามของฉันคือฉันควรเปลี่ยนคอมพิวเตอร์ในอนาคตเป็นวิธีที่ดีที่สุดในการรับสภาพแวดล้อม Emacs ที่เหมือนกันบนคอมพิวเตอร์เครื่องใหม่อย่างที่ฉันมีอยู่ตอนนี้หรือไม่
16 init-file  config 

1
ฉันกำลังเลิกใช้อะไรเมื่อเปิดใช้งานโหมด CUA
โหมด CUA นั้นใกล้กับเวิร์กโฟลว์ที่ฉันคุ้นเคยกับ Emac ภายนอกมากดังนั้นฉันจึงถูกล่อลวงให้เปิดใช้งาน แต่ฉันได้เรียนรู้ว่า Emacs อาจมีอัญมณีที่มีประโยชน์ซ่อนอยู่ในทางของมันและโหมด CUA ดูเหมือนว่าบางสิ่งที่แนบมาในภายหลัง ฉันรู้ถึงประโยชน์ของโหมด CUA แต่ฉันไม่รู้ว่าฉันยอมแพ้โดยการเปิดใช้งาน การอ่านข้อมูลของ Emacs นั้นไม่ได้เป็นการเปิดเผยเกี่ยวกับข้อดีข้อเสียของวิธีการหลักของ Emacs และโหมด CUA ส่วน EmacsWiki กับโหมดทรัสต์ยังไม่เป็นประโยชน์มากเกินไปในเรื่องที่ ฟีเจอร์ที่ผู้ใช้ Emacs ฝีมือดีพลาดไปคือเมื่อเปิดใช้งานโหมด CUA คืออะไร
16 editing  cua-mode 

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