Emacs

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

2
ฉันยังต้องใช้ GNU ELPA หรือไม่ถ้าฉันมี MELPA
สิ่งนี้ทำให้ฉันสับสนอยู่เสมอเนื่องจากมีคนบอกว่า MELPA มีแพ็คเกจรุ่นใหม่กว่า แต่ก็ไม่ชัดเจนถ้า GNU ELPA เป็นเพียงส่วนหนึ่งของ MELPA หรือถ้าฉันต้องการทั้งสองอย่าง? เหตุผลที่ฉันถามคือฉันกำลังทดลองกับแพ็คเกจของฉันมากและpackage-list-packagesใช้เวลาพอสมควร ฉันรับรู้package-list-packages-no-fetchแต่บ่อยกว่าที่ฉันไม่ต้องการรับรายการแพ็คเกจล่าสุด ดังนั้นคำถามคือฉันสามารถใช้ MELPA และรับแพ็คเกจ (และรุ่นที่ใหม่กว่า) ได้เหมือนกันถ้าฉันใช้ทั้ง MELPA และ GNU ELPA

5
ฉันจะตั้งค่าฟอนต์เริ่มต้นเป็น Emac ได้อย่างไร
ฉันไม่สามารถตั้งค่า Inconsolata เป็นฟอนต์เริ่มต้นใน Emacs 24.4 Linux ฉันเปลี่ยนแบบอักษรในเมนู -> บันทึกตัวเลือก แบบอักษรมีการเปลี่ยนแปลง แต่หลังจากการรีสตาร์ทแบบอักษรเหมือนกันตามค่าเริ่มต้น เพิ่มสิ่งนี้ใน~/.Xresources: Emacs.font: Inconsolata LGC จากนั้นในinit.el: (set-default-font "Inconsolata LGC"). เรื่องเดียวกัน ฉันทำอะไรผิด
31 fonts  linux 

3
ฉันจะรับโหมดหลักปัจจุบันได้อย่างไร
ถ้าฉันแก้ไขไฟล์. tex ใน emacs โดยค่าเริ่มต้น (สำหรับฉัน) ที่มุมล่างขวาของเฟรมจะพูดว่า "LaTeX / P" อย่างไรก็ตามฉันจะไม่ไปที่โหมดนั้นโดยพิมพ์ "Mx LaTeX / P-mode"; ฉันสามารถไปถึงมันได้โดยพิมพ์ "Mx latex-mode" นอกเหนือจาก Googling แล้วฉันจะรู้ได้อย่างไรว่าสิ่งที่ฉันพิมพ์ในโหมดนั้นคือ "latex-mode"?
30 major-mode 

4
เมื่อใดที่จะอ้างคำแลมบ์ดาที่คมชัด?
ถาม:เมื่อใดถ้าเคยจะมีประโยชน์กับการเสนอราคาที่คมชัดlambdaและถ้าเป็นไปไม่ได้เราจะไม่เสนอราคาที่คมชัดเมื่อlambdaใด คนใช้lambdas ในสามวิธี: ธรรมดา: (lambda (x) x) ที่ยกมา: '(lambda (x) x) คมชัดที่ยกมา: #'(lambda (x) x) เธรด SO นี้กล่าวถึงสามประเภทเธรด SO นี้อธิบายถึงสาเหตุที่ไม่อ้างถึง (NB: not -quote quote ) lambdas และเธรด SOนี้ยังกล่าวถึงความแตกต่างระหว่างการอ้างถึงและการอ้างอิงที่คมชัด ตอนนี้โหนดแบบแมนนวลในฟังก์ชั่นที่ไม่ระบุชื่อและ docstring เพื่อlambdaทราบว่าlambdaเป็นข้อความที่อ้างถึง: การเรียกแบบฟอร์ม(lambda ARGS DOCSTRING INTERACTIVE BODY)เป็นการอ้างตนเอง ผลของการประเมินแลมบ์ดาแสดงออกคือการแสดงออกของตัวเอง แลมบ์ดานิพจน์นั้นอาจถูกมองว่าเป็นฟังก์ชัน ... ดังนั้นจึงปรากฏว่า(lambda (x) x)และ#'(lambda (x) x)เทียบเท่า แต่'(lambda (x) x)ไม่ใช่ (ที่สำคัญที่สุดคือเมื่อรวบรวมไบต์) ดูเหมือนว่าจะไม่ค่อยต้องการอ้างถึงlambdaแต่ก็ไม่ชัดเจนสำหรับฉันเมื่อใดก็ตามที่เราควรหรือไม่ควรจะพูดคมชัด: การอ้างความคมชัดเป็นlambdaเพียงตัวเลือกโวหารหรือมีสถานการณ์ที่การอ้างอิงที่คมชัดนั้นมีประโยชน์จริงหรือไม่? …
30 elisp  functions 

4
แสดงคีย์ที่ไม่ถูกผูกไว้
ฉันต้องการกำหนดการเชื่อมโยงคีย์บางอย่างสำหรับการใช้ helm แบบใหม่ที่น่าอัศจรรย์โหมด btw ที่น่าทึ่งและฉันต้องการทำโดยไม่เขียนทับการใช้งานของปุ่มอื่น ฉันรู้ว่าจำนวนคีย์ผสมที่แตกต่างกันนั้นไม่มีที่สิ้นสุด แต่มีวิธีใดบ้างที่จะเห็นการผูกคีย์ที่ไม่ได้กำหนดทั้งหมดเพื่อพูดลึก 1 ระดับ ตัวอย่างเช่นผมต้องการที่จะรู้ว่าสิ่งที่ผูกที่สำคัญพร้อมใช้งานหลังจากชนแล้วได้รับบัฟเฟอร์ที่มีรายชื่อของC-cC-c some_keys สมมติว่าคุณสมบัตินี้ไม่มีอยู่ในปัจจุบัน?

2
จะประเมินตัวแปรก่อนเพิ่มลงในรายการได้อย่างไร?
เห็นได้ชัดว่าด้านล่างใช้งานไม่ได้และด้วยเหตุนี้คำถามนี้ ฉันจะแก้ไขโค้ดด้านล่างเพื่อให้ค่าsomelistกลายเป็น'(("abc" . 123))อย่างไร (setq x "abc") (setq y 123) (setq somelist nil) (add-to-list 'somelist '(x . y))

3
ปัญหาเกี่ยวกับปุ่มลัดเมื่อใช้งานเทอร์มินัล
ฉันมีบรรทัดต่อไปนี้ในinit.el: (global-set-key [(control \;)] 'comment-region) มันทำงานได้ดีมากในหน้าต่าง GUI แต่ถ้าemacsถูกเรียกด้วย-nwตัวเลือกนั้นC-;จะไม่แสดงความคิดเห็นในภูมิภาคให้ใส่เฉพาะ;อักขระเท่านั้น M-x comment-region RETทำงานได้ดี แต่ ฉันพยายามทำตามคำตอบนี้กับปัญหาที่คล้ายกัน แต่C-q C-;ผลตอบแทนเพียงและฉันเห็นได้ชัดว่าไม่ต้องการที่จะผูกเปลือย;; วิธีการบรรลุผลที่ต้องการ?

3
เมื่อใดที่ฉันควรใช้ autoload แทนที่จะต้องการ?
จากสิ่งที่ฉันเข้าใจrequireใช้เพื่อโหลดโค้ดขนาดใหญ่ (บางอย่างเช่นโมดูล) ถึงแม้ว่ามันจะสามารถโหลดฟังก์ชั่นแต่ละอย่างได้ Autoload ในอีกด้านหนึ่งเท่านั้นจะลงทะเบียนฟังก์ชั่นและป้องกันการโหลดไปยังเวลาดำเนินการเท่านั้น ฉันเพิ่งอ่านบทความที่สนับสนุนการใช้งานautoloadเฉพาะ ดีautoloadกว่าrequireไหม? กรณีการใช้งานทั่วไปของแต่ละกรณีมีอะไรบ้าง

2
แพคเกจเริ่มต้น: อาร์กิวเมนต์ประเภทที่ไม่ถูกต้อง: arrayp, ศูนย์
ในขณะที่ผ่านemacs ในฐานะที่เป็นผู้แก้ไข ac / c ++ฉันพบรหัสบรรทัดต่อไปนี้เพื่อรวมไว้ใน~/.emacsไฟล์ของฉันเพื่อเชื่อมต่อกับ melpa archivesการติดตั้งแพ็คเกจ (require 'package) (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/")) (package-initialize) หลังจากบันทึกบรรทัดเหล่านี้เป็น emacs เมื่อฉันเริ่ม emacs มันแสดงให้ฉันเห็นwrong type argument: arrayp, nilในพื้นที่ minibuffer เมื่อฉันพยายาม$ emacs --debug -initฉันได้: Debugger entered--Lisp error: (wrong-type-argument arrayp nil) package--add-to-archive-contents(nil "melpa") package-read-archive-contents("melpa") package-read-all-archive-contents() package-initialize() eval-buffer(#<buffer *load*> nil "/home/anupam/.emacs" nil t) ; Reading at …
29 package  start-up 

1
ฉันจะใช้ nadvice ได้อย่างไร
การกำหนดค่าของฉันเต็มไปด้วยคำแนะนำและฉันยังคงได้ยินเกี่ยวกับnadvice.elแพคเกจminimalist minimalist ใหม่ ฉันค้นหาคู่มือและฉันอ่านแหล่งข้อมูลแล้ว แต่ฉันจะยอมรับอย่างเปิดเผย: ฉันยังไม่รู้ว่าจะใช้งานอย่างไร ทุกคนที่นี่สามารถชี้แนะทางให้ฉันหรือบอกวิธีเริ่มใช้คำแนะนำแบบเก่าของฉันได้อย่างไร

6
ใช้แหวนมาร์คอย่างมีประสิทธิภาพ
ฉันใช้เครื่องหมายเพื่อเลือกขอบเขตของบัฟเฟอร์ ตัวอย่างเช่นผมรู้ลำดับสามารถนำมาใช้เพื่อเลือกข้อความทั้งหมดระหว่างจุดปัจจุบันและจุดหลังจากการค้นหาสำหรับC-<space> C-s foofoo ฉันเพิ่งค้นพบการมีอยู่ของวงแหวนทำเครื่องหมายดังนั้นฉันสามารถC-<space> C-<space>ออกจากเครื่องหมายย้ายจุดในบัฟเฟอร์และจากนั้นC-u C-<space>จะกระโดดกลับ มีคำแนะนำคำแนะนำหรือเคล็ดลับในการนำทางอย่างมีประสิทธิภาพโดยใช้วงแหวนทำเครื่องหมายหรือไม่?

5
สไตล์การเยื้องที่แตกต่างกันสำหรับโครงการที่แตกต่างกัน
ฉันทำงานในโครงการ C ที่แตกต่างกันด้วยสไตล์การเยื้องที่ไม่ซ้ำใคร ฉันจะให้ Emacs ทำการตั้งค่าการเยื้องต่อโปรเจ็กต์ได้อย่างไรโดยไม่สร้างมลพิษให้กับแผนผังต้นน้ำโครงการด้วย.dir-locals.elไฟล์ ฉันต้องการจับคู่โครงการโดยใช้เส้นทางของพวกเขาบนดิสก์

2
ฉันจะซ่อน / แสดงส่วน LaTeX ได้เช่นเดียวกับโหมด org ทำกับพาดหัวได้อย่างไร
เมื่อแก้ไขไฟล์ org ฉันพบว่ามันสะดวกอย่างยิ่งที่คุณสามารถซ่อนและแสดงหัวข้อข่าวและเนื้อหาได้โดยเพียงแค่กดTABที่บรรทัดแรก ตัวอย่างเช่นพิจารณาบัฟเฟอร์ต่อไปนี้ * Headline 1 Some text here. * Headline 2 Some more text here. ถ้าฉันวางจุดแรก*และกดTABฉันจะได้รับต่อไปนี้: * Headline 1... * Headline 2 Some more text here. มีวิธีในการบรรลุเป้าหมายดังกล่าวด้วยส่วนของน้ำยางหรือไม่? เช่นฉันจะซ่อนและแสดงเนื้อหาของส่วน LaTeX / ตอน / ฯลฯ ในขณะที่รักษาชื่อมองเห็นได้อย่างไร ฉันใช้ AucTeX สำหรับโหมด LaTeX แต่ฉันไม่พบสิ่งใดที่ดูเหมือนว่าจะเติมเต็มบทบาทนี้

2
เป็นไปได้ไหมที่จะใช้ทั้ง MELPA และ MELPA-เสถียรในเวลาเดียวกัน?
ฉันใช้ Melpa-stable เป็นที่เก็บแพ็กเกจเพิ่มเติม แต่หนึ่งในแพ็คเกจที่ฉันต้องการใช้ (หยาด) ไม่สามารถใช้ได้กับ Melpa-stable มีวิธีใดในการกำหนดค่า package.el ให้ใช้ melpa-stable แต่ใช้ melpa สำหรับชุดย่อยของแพคเกจเฉพาะหรือไม่

2
ทำให้โหมดบรรทัดภาพสามารถทำงานร่วมกับโหมด org ได้มากขึ้น
visual-line-modeมีประโยชน์มากในการตัดบรรทัดที่มีการเปลี่ยนแปลงขนาดหน้าต่างโดยไม่ต้องแทรกบรรทัดใหม่ แต่ในorg-modeนั้นมันครอบคลุมพาดหัวและซอร์สบล็อกซึ่งค่อนข้างน่ารำคาญเล็กน้อย ดังนั้นคำถามของฉันมาที่นี่: ฉันจะปิดโหมดแสดงภาพสำหรับส่วนหัวขององค์กรและบล็อกแหล่งที่มาอย่างถาวรในโหมดองค์กรได้อย่างไร

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