คำถามติดแท็ก elisp

Emacs Lisp เป็นภาษาส่วนขยายสำหรับโปรแกรมแก้ไขข้อความ GNU Emacs และในความเป็นจริงฟังก์ชันการทำงานส่วนใหญ่ของ Emacs ถูกนำไปใช้โดยใช้ Emacs Lisp โดยทั่วไปผู้ใช้จะปรับแต่งพฤติกรรมของ Emacs โดยเพิ่มคำสั่ง Emacs Lisp ใน "~ / .emacs" หรือเขียนแพ็คเกจแยกกัน

3
วิธีการให้ Emacs ทำการรีเฟรชบัฟเฟอร์ทั้งหมดโดยอัตโนมัติเมื่อไฟล์มีการเปลี่ยนแปลงบนดิสก์?
ฉันมีการค้นหาระดับโลกที่ไม่ใช่ emacs และแทนที่ฟังก์ชั่นที่ทำให้ไฟล์ดิสก์ของฉันทันสมัยกว่าบัฟเฟอร์ emacs ของฉัน (en masse) มีวิธีใดที่จะบอกให้ emacs รีเฟรชบัฟเฟอร์ทั้งหมดจากดิสก์ในคราวเดียวล้มเหลวแทนที่จะต้องทำทีละตัวด้วยการโหลดไฟล์ซ้ำ? ขอบคุณ! D
176 emacs  elisp  dot-emacs 

9
มี (ซ้ำคำสั่งสุดท้าย) ใน Emacs หรือไม่
บ่อยครั้งที่ฉันขุด apropos และ docs กำลังมองหาสิ่งต่อไปนี้เท่านั้นที่จะยอมแพ้เพื่อกลับไปที่งานที่ทำอยู่: (ซ้ำสุดท้ายคำสั่ง) ทำคำสั่ง C- หรือ M- สุดท้ายที่ฉันเพิ่งดำเนินการ (เพื่อให้รีบาวด์ไปยังคีย์ fn) หรือบางครั้งเกี่ยวข้อง: (อธิบายสุดท้ายฟังก์ชั่น) การกดแป้นพิมพ์ที่ฉันเพิ่งทำผิดพลาดซึ่งผลที่ฉันต้องการเพิ่มในถุงของฉัน คำอธิบายคีย์ใกล้ แต่ต้องรู้ว่าฉันพิมพ์อะไร ฉันแค่ขอจากเพื่อนสนิทที่เชื่อถือได้ของฉันมากเกินไปหรือไม่
143 emacs  elisp 

5
ฉันจะรวบรวมทุกสิ่งในไดเรกทอรี. emacs.d ของฉันได้อย่างไร
ฉันตัดสินใจที่จะดู Emacs และฉันชอบมันมาก ตอนนี้ฉันใช้Emacs Starter Kitซึ่งเป็นประเภทที่ให้ค่าเริ่มต้นที่ดีขึ้นและการปรับแต่งที่ดีในการติดตั้ง Emacs เริ่มต้น ฉันปรับแต่งมันเล็กน้อยเพิ่มบางสิ่งเช่นyasnippet , ธีมสี , ไม่ได้ผูกไว้และอื่น ๆ ฉันได้ตั้งค่าที่เก็บ githubที่ฉันเก็บการปรับแต่งทั้งหมดเพื่อให้ฉันสามารถเข้าถึงได้จากหลาย ๆ ที่หรือในกรณีที่มีบางอย่างไม่ดีและฉันสูญเสียไดเรกทอรี. emacs.d ของฉัน ทั้งหมดนี้ดีมาก แต่มีปัญหา: Emacs ใช้เวลาโหลดประมาณ 1-2 วินาที AFAIK ฉันสามารถรวบรวมไฟล์. el แต่ละไฟล์ด้วย Mx ไบต์คอมไพล์ไฟล์เป็น. elc และใช้งานได้ แต่มีไฟล์. el อยู่มากมายและฉันสงสัยว่ามีวิธีรวบรวมไฟล์เหล่านั้นทั้งหมดด้วยคำสั่งหรือสิ่งง่าย ๆ เพื่อเร่งความเร็วในการโหลด Emacs หรือไม่ Emacs ของฉันไม่ได้เปิดอยู่เสมอและฉันเปิดและปิดบ่อยๆโดยเฉพาะหลังจากที่ฉันตั้งค่าเป็นตัวแก้ไขค่าเริ่มต้นสำหรับคำสั่งแก้ไขใน Total Commander เพื่อให้คุ้นเคยกับมันเร็วขึ้น (ใช่แล้ว windows xp ที่นี่) …

1
การเติมข้อความอัตโนมัติ Emacs Ruby เกือบจะทำงาน
ฉันได้อัปเดตการกำหนดค่า emacs ของฉันด้วยการใช้ Rsense เพื่อให้กล่องแบบเลื่อนลงการเติมข้อความอัตโนมัติปรากฏขึ้นในขณะที่พิมพ์รหัส สิ่งนี้ใช้งานได้ดีในไฟล์ส่วนใหญ่ยกเว้นฉันพบว่าไม่อนุญาตให้ฉันเลือกคำตอบจากตารางเมื่อฉันแก้ไขโค้ดในโครงการ Ruby on rail นี่คือการตั้งค่าของฉัน: https://github.com/map7/simple_emacs ฉันใช้สิ่งนี้ภายใต้ Ubuntu 10.04 สำหรับไฟล์สคริปต์ Ruby แบบธรรมดามันใช้งานได้ดี ฉันสามารถเปิดไฟล์ใหม่และพิมพ์ "test".up... เช่นเดียวกับที่ฉันพิมพ์อักขระ 'p' ในรายการตัวเลือกต่างๆจะปรากฏขึ้นและฉันสามารถขึ้นและลงรายการด้วยปุ่มลูกศรและเลือกหนึ่งตัว (เช่น: ตัวพิมพ์ใหญ่) ด้วยปุ่ม Enter สิ่งที่ไม่ได้ผลคือเมื่อฉันทำการทดสอบแบบเดียวกันทั้งหมด แต่อยู่ในไดเร็กทอรีฐานของโครงการราง อัปเดต: พบว่าปัญหาเกิดจาก (ต้องใช้ 'ราง) ดังนั้นจึงเป็นสิ่งที่อยู่ในปลั๊กอิน emacs-rail ที่การเติมข้อความอัตโนมัติไม่ชอบ อัปเดต: มันอยู่ใน emacs-rail -> railway-project.el หากฉันแสดงความคิดเห็นมาโครนี้การเติมข้อความอัตโนมัติจะทำงานมิฉะนั้นจะไม่: (defmacro* rails-project:with-root ((root) &body body) "If you use `rails-project:root' …

14
จะบรรลุเอฟเฟกต์การพับโค้ดใน Emacs ได้อย่างไร
อะไรคือวิธีที่ดีที่สุดในการบรรลุบางอย่างเช่นการพับโค้ดหรือประเภทของการขี่จักรยานที่โหมดองค์กรใช้ อะไรคือทางออกที่ดีที่สุดในการสร้างพฤติกรรมประเภทนี้ แก้ไข: ฉันขอโทษที่ฉันไม่ชัดเจน ฉันต้องการตั้งโปรแกรมบางอย่างใน elisp ที่ทำสิ่งต่างๆคล้ายกับการพับโค้ดหรือจริงๆแล้วส่วนใหญ่เหมือนกับโหมดองค์กรที่มีลำดับชั้นที่สามารถขยายได้ ฉันสงสัยว่าวิธีที่ดีที่สุดในการบรรลุผลนี้ ฉันคิดว่าฉันเคยได้ยินการซ้อนทับ emacs เป็นทางออกที่ดี แต่ฉันไม่รู้ เท่าที่พับได้ฉันก็ใช้ set-selective-display ในตัว แก้ไขหมายเลข 2: ขอบคุณสำหรับคำตอบ แต่ฉันคิดว่าฉันกำลังถามคำถามผิดดังนั้นขอให้ฉันพยายามให้ชัดเจนมากขึ้นว่าฉันกำลังพยายามทำอะไร ฉันต้องการสร้างสิ่งต่อไปนี้ เมื่อคุณใส่จุดของคุณบนฟังก์ชันและเรียกใช้ฟังก์ชัน elisp นี้มันจะวางนิยามฟังก์ชันจากที่ใดก็ตาม (ฉันคิดว่าจะใช้ find-tag สำหรับสิ่งนี้) และคลี่ออกในบัฟเฟอร์ปัจจุบัน แนวคิดคือถ้าคุณต้องข้ามไปยังบัฟเฟอร์อื่นเพื่ออ่านนิยามฟังก์ชันฉันรู้สึกว่ามันเปลี่ยนบริบทไปยังไฟล์อื่น ดังนั้นฉันต้องการให้มันทำงานเหมือนการพับโค้ดเพียง แต่ดึงโค้ดภายนอกจากบัฟเฟอร์เท่านั้น สิ่งนี้นำเสนอปัญหาบางประการเนื่องจากไม่สามารถวางรหัสลงในบัฟเฟอร์ได้อย่างเฉียบพลันหรือหากมีผู้บันทึกไว้ระบบจะบันทึกรหัสที่ดึงเข้ามา ดังนั้นฉันจึงสงสัยว่ามีวิธีสร้างพื้นที่ภายในบัฟเฟอร์ที่ไม่ได้เป็นส่วนหนึ่งของบัฟเฟอร์ด้วยหรือไม่ ผมคิดว่าเข้าท่า

10
ฉันจะกำหนดขนาดหน้าต่างของ Emacs ได้อย่างไร?
ฉันกำลังพยายามตรวจจับขนาดของหน้าจอที่ฉันเริ่มใช้ emac และปรับขนาดและตำแหน่งของหน้าต่างที่กำลังเริ่มต้น (ฉันเดาว่านั่นคือกรอบใน emacs-speak) ตามนั้น ฉันกำลังพยายามตั้งค่า. emac ของฉันเพื่อให้ได้หน้าต่างที่ "ใหญ่พอสมควร" โดยที่มันอยู่มุมบนซ้ายใกล้กับมุมบนซ้ายของหน้าจอ ฉันเดาว่านี่เป็นเรื่องใหญ่สำหรับกรณีทั่วไปดังนั้นเพื่อ จำกัด สิ่งต่างๆให้แคบลงฉันสนใจ GNU Emacs 22 บน Windows และ (Debian) Linux มากที่สุด
103 emacs  elisp 


2
emacs ยกเลิกการแยกการแยกหน้าต่างเฉพาะ
นี่อาจเป็นคำถามที่โง่ แต่ฉันไม่สามารถหาวิธีแก้ปัญหานี้ได้โดยตรง ฉันมักจะต้องการยกเลิกการแบ่งหน้าต่างดังนี้ +--------------+-------------+ +--------------+-------------+ | | | | | | | | | | | | | | | | | | +--------------+ | --> | | | | | | | | | | | | | | | | | | | | | +--------------+-------------+ +--------------+-------------+ +--------------+--------------+ …
98 emacs  elisp 

12
ฟังก์ชันแสดงพา ธ เต็มของไฟล์ปัจจุบันในมินิบัฟเฟอร์
ฉันต้องการเส้นทางแบบเต็มของไฟล์ที่ฉันแก้ไขด้วย emacs มีฟังก์ชั่นสำหรับสิ่งนั้นหรือไม่? ถ้าไม่ฟังก์ชั่น elisp ในการรับสิ่งนั้นคืออะไร? ฉันจะคัดลอกผลลัพธ์ (ชื่อพา ธ ) ไปยังคลิปบอร์ดเพื่อนำกลับมาใช้ใหม่ได้อย่างไร ฉันใช้ Mac OS X และ Aqumacs (setq filepath (get-fullpath-current-file)) ??? (copy-to-clipboard 'filepath) ??? เพิ่มแล้ว (ยุติการแสดงชื่อไฟล์ () "แสดงชื่อไฟล์พา ธ แบบเต็มในมินิบัฟเฟอร์" (เชิงโต้ตอบ) (ข้อความ (ชื่อไฟล์บัฟเฟอร์)) (kill-new (ชื่อไฟล์บัฟเฟอร์ชื่อไฟล์)) ) (global-set-key "\ C-cz" 'แสดงชื่อไฟล์) เมื่อรวมสองคำตอบที่ฉันได้ฉันจะได้สิ่งที่ต้องการ ขอบคุณสำหรับคำตอบ และคำถามอื่น ๆ สำหรับ (file-truename) คืออะไร? ฉันสามารถคัดลอกชื่อพา ธ ไปยังคลิปบอร์ดของ …


9
ปิดบัฟเฟอร์ทั้งหมดนอกเหนือจากบัฟเฟอร์ปัจจุบันใน Emacs
ฉันจะปิดบัฟเฟอร์ทั้งหมดยกเว้นบัฟเฟอร์ปัจจุบันใน Emacs ได้อย่างไร คล้ายกับคุณลักษณะ "ปิดแท็บอื่น ๆ " ในเว็บเบราว์เซอร์สมัยใหม่หรือไม่
92 emacs  elisp 


1
ความแตกต่างระหว่าง setq และ setq-default ใน Emacs Lisp
ฉันมีคำถามเกี่ยวกับ Emacs Lisp setqและsetq-defaultต่างกันอย่างไร บทช่วยสอนบอกว่าsetqมีผลในบัฟเฟอร์ในเครื่องในขณะที่setq-defaultมีผลกับบัฟเฟอร์ทั้งหมด ตัวอย่างเช่นถ้าผมเขียน(setq A-var A-vars ค่า)ในinit.elผมพบว่าหลังจากที่เริ่มต้น Emacs และการเปิดกันชนใหม่ที่มี varยังมีและค่าที่เป็นความ vars มูลค่า ฉันคิดว่ามันไม่ควรจะอยู่ที่นั่น ดูเหมือนจะมีความแตกต่างระหว่างไม่มีsetqและsetq เริ่มต้น มีอะไรผิดปกติกับความเข้าใจของฉัน? ตัวอย่างเช่น: ฉันเขียน(setq hello 123)ในไฟล์init.elและเรียกใช้emacs abufferในเชลล์จากนั้นฉันป้อน"hello Cx Ce"มันจะแสดง "123" สิ่งเดียวกันนี้เกิดขึ้นเมื่อฉันเรียกใช้สิ่งนี้ในบัฟเฟอร์ใหม่ทั้งหมด ฉันเขียน(setq tab-width 4)ในไฟล์init.el เมื่อฉันเรียกใช้Cx Ce ที่มีความกว้างแท็บจะแสดง "8" (โหมดปัจจุบันคือ 'ข้อความ') อย่างไรก็ตามเมื่อฉันใช้(setq-default tab-width 4)มันจะแสดง "4" ฉันไม่สามารถอธิบายปรากฏการณ์นี้ได้
89 emacs  elisp 

3
"อาร์กิวเมนต์ผิดประเภท: commandp" เกิดข้อผิดพลาดเมื่อผูกแลมบ์ดากับคีย์
ฉันได้รับ "อาร์กิวเมนต์ผิดประเภท: commandp, (lambda nil (forward-line 5))" ที่นี่ (global-set-key [?\M-n] (lambda () (forward-line 5))) ข้อผิดพลาดคืออะไร? ฉันค่อนข้างแน่ใจว่ามันเรียบง่ายและฉันพลาดบางอย่างที่ชัดเจน
88 emacs  elisp 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.