Emacs

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

2
ความแตกต่างระหว่างโหลดไฟล์และโหลด
ฉันอ่านเอกสารของทั้งสองฟังก์ชั่น แต่พวกเขาดูเหมือนจะไม่ได้เปิดเผยข้อมูลมากนัก อะไรคือความแตกต่างที่แท้จริงระหว่างพวกเขานอกเหนือจากความจริงที่ว่าloadมีฟังก์ชั่นในตัวในซอร์สโค้ด C ในขณะที่โหลดไฟล์เป็นฟังก์ชั่นคอมไพล์รายการแบบโต้ตอบ ฟังก์ชั่นที่แนะนำให้ใช้init.elเนื่องจากทั้งสองดูเหมือนจะทำงานเดียวกันคืออะไร?
17 elisp  functions 

1
จะเยื้องรายการในสภาพแวดล้อม Laize DeaX / AUCTeX ได้อย่างไร
ถาม:ฉันจะได้รับการเยื้อง "เหมาะสม" ของitemizeสภาพแวดล้อมLaTeX ได้auctexอย่างไร นี่คือสิ่งที่ฉันต้องการจะอยู่itemในitemizeสภาพแวดล้อม: \item บรรทัดถูกเยื้องสองช่องว่างสัมพันธ์กับจุดเริ่มต้นของสภาพแวดล้อม บรรทัดที่มีความต่อเนื่องในรายการจะเพิ่มช่องว่างอีกสองช่องที่สัมพันธ์กับ\itemบรรทัด นี่คือสิ่งที่ฉันต้องการ / คาดหวังที่จะเห็น: \begin{itemize} \item Here's a really long item in a LaTeX itemize environment; note how the *initial* item line is indented two spaces, and the continuation lines are indented another two spaces. \end{itemize} หนึ่งสามารถปรับเยื้องเริ่มต้นของรายการที่มีตัวแปรที่เริ่มต้นที่LaTeX-item-indent -2ด้วยค่าเริ่มต้นนี้ฉันจะได้รับพฤติกรรมที่ไม่พึงประสงค์ของการ\itemไม่เยื้อง แต่ฉันจะได้รับพฤติกรรมที่ต้องการของเส้นต่อเนื่องที่ถูกชดเชยด้วยช่องว่างสองช่องเพิ่มเติม: \begin{itemize} \item Here's a …

4
ชุมชน emacs ใดที่มีอยู่?
โปรดรักษาคำตอบของวิกิชุมชนไว้ซึ่งอธิบายรายชื่ออีเมลวิกิบล็อกช่อง irc ฟอรัมหรือชุมชนอื่น ๆ ที่ GNU Emacs เป็นหัวข้อหลัก เพื่อให้มีรายชื่อชุมชนจะต้อง 'เปิด' ซึ่งหมายความว่าทุกคนสามารถมีส่วนร่วม ข้อยกเว้นสำหรับกฎนั้นควรและควรทำ ใช้วิจารณญาณ ตัวอย่างเช่น: แน่นอนว่าบล็อกของ Sacha และไซต์ของ Xah อยู่ในรายการนี้
17 learning 

2
บันทึกไฟล์ปัจจุบันด้วยชื่อที่แตกต่างกันเล็กน้อย
ไฟล์ของฉันมีชื่อไฟล์ยาวและส่วนหนึ่งของชื่อไฟล์คือวันที่และหมายเลขเวอร์ชัน บ่อยครั้งที่ฉันต้องการบันทึกไฟล์ในบัฟเฟอร์โดยใช้ชื่อเกือบเหมือนกันเพียงแค่เปลี่ยนหมายเลขรุ่นหรือวันที่ นี่จะง่ายกว่านี้ถ้าฉันมีคำสั่งซึ่งใส่ชื่อไฟล์ของบัฟเฟอร์ปัจจุบันลงใน kill ring เพื่อให้ฉันสามารถเปิดไฟล์จากนั้นพิมพ์C-x C-w(เขียนไฟล์) ดึงชื่อปัจจุบันด้วย Cy เปลี่ยนและบันทึก มัน. ฉันใช้ Emacs 24.3 บน Windows และ 24.4 บน Linux ฉันต้องใช้ชื่อไฟล์ที่แตกต่างกันและไม่ต้องคอมไพล์ด้วยเหตุผลต่าง ๆ ฉันยินดีหากคำสั่งนี้ทำงานกับ AUCTeX / LaTeX เป็นโหมดหลัก แก้ไข 1: ฉันทำผิดพลาด: ฉันไม่ต้องการพิมพ์C-x C-f(= ค้นหาไฟล์) แต่C-x C-w(= เขียนไฟล์) ฉันแก้ไขสิ่งนี้แล้ว แก้ไข 2: พบคำถามและคำตอบที่ซ้ำกัน: /unix//a/45381แต่ไม่มีคำตอบที่ดีกว่า! แก้ไข 3: ที่นี่: http://www.gnu.org/software/emacs/manual/html_node/elisp/File-Name-Components.htmlเป็นฟังก์ชันซึ่งเลือกส่วน "nondirectory" ของชื่อไฟล์: ฟังก์ชัน: file-name-nondirectory filename …
17 files 

1
ฉันจะรีสตาร์ท emacs และเก็บบัฟเฟอร์ที่เปิดอยู่และประวัติการโต้ตอบได้อย่างไร
จากการติดตามไปยังวิธีที่เร็วที่สุดในการโหลดไฟล์. emacs ของฉันใหม่เมื่อฉันทำการเปลี่ยนแปลงดังนั้นบัฟเฟอร์ที่ได้รับผลกระทบทั้งหมดของฉันจะรับการเปลี่ยนแปลงเหล่านั้น แนะนำว่าควรถามคำถามการเริ่มระบบแยกต่างหาก มีวิธีง่าย ๆ ในการเปิดบัฟเฟอร์ก่อนหน้านี้ทั้งหมดอีกครั้งและเก็บM-pประวัติการโต้ตอบสำหรับคำสั่งหรือไม่
17 session 

1
วิธีส่งออกส่วนหัวระดับสูงสุดของบัฟเฟอร์โหมดองค์กรไปยังไฟล์แยกกันได้อย่างไร
แต่ละหัวข้อระดับบนสุดของorg-modeบัฟเฟอร์สามารถส่งออกไปยังไฟล์แยกต่างหากที่ตั้งชื่อตามค่าของชื่อCUSTOM_ID+ (sanitized) ที่เกี่ยวข้องได้อย่างไร สมมติว่าบัฟเฟอร์ประกอบด้วย: * Title of Heading 1 :PROPERTIES: :CUSTOM_ID: fibrillogenesis :END: Suspendisse potenti. Mauris ac felis vel velit tristique imperdiet. ** Sub-Heading Nullam rutrum. * Another Title for Heading 2 :PROPERTIES: :CUSTOM_ID: mitochondrion :END: Mauris mollis tincidunt felis. Sed bibendum. ผลลัพธ์สุดท้ายจะเป็นไดเรกทอรีที่มีสองไฟล์หนึ่งไฟล์สำหรับแต่ละหัวเรื่องระดับบนสุดด้วยรูปแบบที่เลือกในเวลาส่งออก (HTML, LaTeX, ฯลฯ ) โดยมีชื่อไฟล์และเนื้อหาดังต่อไปนี้: ชื่อไฟล์ของส่วนหัวที่ส่งออกครั้งแรก: fibrillogenesis-title-of-heading-1.[ext] …

2
ฉันจะใช้รสชาติ SE ของ Markdown ใน emacs ได้อย่างไร
ฉันต้องการใช้รสชาติ SE ของการ markdown ใน emacs ของฉัน โหมด Markdown เริ่มต้นมีคุณสมบัติบางอย่าง (รหัส backticks และเครื่องหมายย่อหน้า#ทำให้ส่วนหัวและ>เปลี่ยนแบบอักษรด้วย) แต่ฉันต้องการ: * เพื่อสร้างรายการรวมถึงการเยื้อง [foo](http://example.com)เพื่อแสดงเป็นfooและเปิดเบราว์เซอร์เป็นhttp://example.comเมื่อคลิก เป็นการดีที่ฉันต้องการให้แสดงใน emacs ของฉันในรูปแบบ Markdown ตัวอย่างเช่นถ้าฉันจะเขียน: ## Header * item 1 * item 2 while true; do echo foo; done End of list and more code while true; do echo bar; done See [here](http://example.com) …

4
มีโหมดสำหรับการดูการกดแป้นการสูญเสียแบบเรียลไทม์หรือไม่?
C-h lแสดงบัฟเฟอร์ความช่วยเหลือที่สูญเสียซึ่งแสดงการกดแป้นล่าสุด การกดgปรากฏขึ้นเพื่อย้อนกลับทำให้การอัปเดต น่าเสียดายที่การเปิดใช้งานauto-revert-modeจะไม่เปลี่ยนเป็นการอัปเดตอย่างต่อเนื่อง มันจะดีถ้าฉันสามารถเปิดหน้าต่างหรือเฟรมอื่นและแสดงการสูญเสียแบบเรียลไทม์เพื่อแสดงให้ผู้ชมเห็นว่าฉันกำลังพิมพ์อะไรอยู่ สิ่งนี้สามารถใช้สำหรับการจับคู่ในเซสชัน tmux / tmate วิดีโอออนไลน์บางรายการมีลักษณะเช่นนี้ แต่ดูเหมือนจะเป็นแอปพลิเคชันภายนอกและระบบปฏิบัติการเฉพาะ มีวิธีที่ดีในการแสดงการกดแป้นในเวลาจริงตามที่เกิดขึ้นจากภายใน Emacs หรือไม่?

1
มีข้อเสียในการตั้งค่า 'gc-cons-threshold` สูงมากและเก็บขยะเมื่อไม่ได้ใช้งานหรือไม่?
ฉันเพิ่มสองบรรทัดต่อไปนี้ที่ด้านบนของinit.el: (setq gc-cons-threshold (eval-when-compile (* 1024 1024 1024))) (run-with-idle-timer 2 t (lambda () (garbage-collect))) นั่นหมายความว่าแทนที่จะรวบรวมขยะทุก ๆ 800kb ของหน่วยความจำที่จัดสรร Emacs ทำเช่นนั้นเมื่อไม่ได้ใช้งานนั่นคือเมื่อการหยุดชั่วคราวไม่รบกวนฉัน (มันยังรวบรวมหลังจากจัดสรรหน่วยความจำ 1GB แล้ว แต่ฉันไม่คิดว่ามันจะเกิดขึ้น) นี่เป็นการปรับปรุงเวลาเริ่มต้นของฉันประมาณสองในสาม ในทางทฤษฎีมันควรปรับปรุงประสิทธิภาพโดยทั่วไป มีข้อเสียสำหรับวิธีนี้หรือไม่?

1
ใน Magit ความแตกต่างระหว่าง 'ที่ซ่อน' และ 'ภาพรวม' คืออะไร?
คู่มือการใช้ Magitรวมถึงสองชุดของ "stashing" คำสั่ง: คำสั่งกรณีที่ต่ำกว่าประหยัดซ่อนและคำสั่งบนกรณีบันทึกภาพรวม หลังจากปรึกษา Google และ Stack Overflow และgit-stash(1)หน้าคนฉันก็ยังไม่รู้ความแตกต่าง ความแตกต่างคืออะไร?
17 magit 

2
จะป้องกันไม่ให้ flycheck ปฏิบัติต่อ init.el ของฉันเป็นไฟล์แพ็คเกจได้อย่างไร?
หากเปิดใช้งานโหมด flycheck สำหรับ init.el ของฉันฉันได้รับข้อผิดพลาดต่อไปนี้: The first line should be of the form: ";;; package --- Summary" (emacs-lisp-checkdoc) ... The footer should be: (provide 'init)\n;;; init.el ends here (emacs-lisp-checkdoc) ฉันจะหยุด flycheck จากการรักษา init.el ของฉันเป็นแพ็คเกจได้อย่างไร? แก้ไข ฉันพยายามติดตามไฟล์เริ่มต้นที่น้อยที่สุด: ;; flycheck-mode (require 'flycheck) (global-flycheck-mode) (setq-default flycheck-disabled-checker '(emacs-lisp-checkdoc)) เปิดใช้งานเฉพาะ flycheck และการอ้างอิงเท่านั้น emacs-lisp-checkdocอยู่ในรายการตัวตรวจสอบที่ถูกปิดใช้งาน แต่ยังมีข้อผิดพลาด flycheck: …
17 flycheck 


4
จัดย่อหน้าคำหลักได้อย่างไร
อาจได้รับอิทธิพลจาก Clojure ฉันมักจะใช้รายการคุณสมบัติเป็นโครงสร้างข้อมูล ส่วนใหญ่ emacs เยื้องพวกเขาเช่นนี้ `(:token ,token :token-quality ,quality) , ในขณะนี้คือสิ่งที่ฉันต้องการ `(:token ,token :token-quality ,quality) . ดังนั้นฉันสงสัยว่าถ้าใครบางคนจัดการเรื่องนี้ไปแล้ว?
17 elisp 

4
ฉันสามารถจัดรูปแบบเซลล์ในตารางโหมดองค์กรแตกต่างกันขึ้นอยู่กับสูตรได้หรือไม่?
ฉันมีคอลัมน์ในตารางโหมดองค์กรที่มีตัวเลขในแต่ละเซลล์ ฉันต้องการเปลี่ยนสีพื้นหลังของเซลล์เป็นสีแดงหากจำนวนต่ำกว่า 1 หรือสูงกว่า 2 ฉันจะทำสิ่งนั้นได้อย่างไร

3
จะยุบประวัติเลิกทำอย่างไร
ฉันกำลังทำงานในโหมด Emacs ที่ให้คุณควบคุม Emacs ด้วยการรู้จำเสียง หนึ่งในปัญหาที่ฉันพบคือวิธีที่ Emacs จัดการเลิกทำไม่ตรงกับที่คุณคาดหวังว่ามันจะทำงานเมื่อควบคุมด้วยเสียง เมื่อผู้ใช้พูดหลาย ๆ คำและหยุดชั่วคราวนั่นเรียกว่า 'คำพูด' คำพูดอาจประกอบด้วยหลายคำสั่งเพื่อให้ Emacs ดำเนินการ บ่อยครั้งที่ตัวจำแนกลายมือรู้จักหนึ่งคำสั่งหรือมากกว่านั้นภายในคำพูดที่ไม่ถูกต้อง ณ จุดนั้นฉันต้องการที่จะพูดว่า "เลิกทำ" และให้ Emacs เลิกทำการกระทำทั้งหมดด้วยคำพูดไม่ใช่แค่การกระทำสุดท้ายภายในคำพูด กล่าวอีกนัยหนึ่งฉันต้องการให้ Emacs ใช้คำพูดเดียวกับคำสั่งที่เกี่ยวข้องกับการเลิกทำแม้ว่าคำพูดนั้นจะประกอบด้วยหลายคำสั่งก็ตาม ฉันต้องการที่จะกลับไปที่เดิมก่อนคำพูดฉันสังเกตเห็นว่า Emacs การเลิกทำตามปกติไม่ได้ทำเช่นนี้ ฉันมีการตั้งค่า Emacs เพื่อรับการเรียกกลับที่จุดเริ่มต้นและจุดสิ้นสุดของคำพูดแต่ละคำเพื่อให้ฉันสามารถตรวจสอบสถานการณ์ได้ฉันต้องคิดว่าจะให้ Emacs ทำอะไร เป็นการดีที่ฉันจะเรียกสิ่งที่ชอบ(undo-start-collapsing)แล้ว(undo-stop-collapsing)และสิ่งที่ทำในระหว่างนั้นจะถูกยุบลงอย่างน่าอัศจรรย์เป็นหนึ่งระเบียน ฉันทำการสืบค้นผ่านเอกสารและพบundo-boundaryแต่มันตรงกันข้ามกับสิ่งที่ฉันต้องการ - ฉันต้องยุบการกระทำทั้งหมดภายในคำพูดเป็นหนึ่งในการยกเลิกการบันทึกไม่ใช่การแยกพวกเขาออก ฉันสามารถใช้undo-boundaryระหว่างคำพูดเพื่อให้แน่ใจว่าการแทรกได้รับการพิจารณาแยกต่างหาก (โดยค่าเริ่มต้นจะพิจารณาการแทรกที่ต่อเนื่องกันเป็นหนึ่งการกระทำจนถึงขีด จำกัด ) แต่นั่นก็คือ ภาวะแทรกซ้อนอื่น ๆ : daemon การจดจำเสียงของฉันส่งคำสั่งไปยัง Emacs โดยการจำลองปุ่มกด X11 …

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