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

สำหรับคำถามเกี่ยวกับ Emacs Lisp เป็นภาษาเทียบกับภาษาอื่นโดยเฉพาะเมื่อเทียบกับภาษา Lisp อื่น ๆ นั่นคือสำหรับคำถาม * เกี่ยวกับภาษา * นั้น * อย่าใช้มัน * สำหรับคำถามเกี่ยวกับ * โดยใช้ * Emacs Lisp Emacs Lisp เป็นภาษาสคริปต์และการเขียนโปรแกรมที่ตัวแก้ไข Emacs สร้างขึ้น

2
ฟังก์ชั่นเพื่อลบความคิดเห็นทั้งหมดจากบัฟเฟอร์โดยไม่ย้ายไปฆ่าแหวน
ฉันต้องสามารถลบความคิดเห็นทั้งหมดจากบัฟเฟอร์จากรหัส elisp ตอนนี้ฉันกำลังใช้: (goto-char (point-min)) (comment-kill (count-lines (point-min) (point-max))) อย่างไรก็ตามcomment-killเป็นฟังก์ชั่นอินเทอร์แอคทีฟและการใช้หลักของมันคือลบความคิดเห็นทีละรายการ นอกจากนี้ยังมีผลข้างเคียงที่น่ารำคาญเนื่องจากมันเพิ่มความคิดเห็นทั้งหมดที่ฆ่าไปยังริง - ริง มีฟังก์ชั่นที่อนุญาตให้ลบ (ไม่ฆ่า) ความคิดเห็นบางส่วนหรือทั้งหมดจากบัฟเฟอร์หรือไม่?

2
ข้อความชั่วคราวในตำแหน่งหน้าต่างที่ไม่มีข้อความสำหรับปรับขนาด / ซ้อนทับใช่หรือไม่
ถาม:ฉันจะแสดงข้อความชั่วคราวในหน้าต่างที่ตำแหน่งหน้าจอโดยไม่มีข้อความสำหรับปรับขนาด / ซ้อนทับได้อย่างไร ฉันคุ้นเคยกับแนวคิดพื้นฐานที่อยู่เบื้องหลังคุณสมบัติข้อความและภาพซ้อนทับ (ดูที่กระทู้นี้ ) ใช้มันสองสามครั้ง แต่ฉันไม่คุ้นเคยกับมันเลย ความเข้าใจที่ จำกัด ของฉันคือต้องมีข้อความเพื่อปรับขนาดหรือซ้อนทับ แต่ฉันสงสัยว่าจะใช้ส่วนต่าง ๆ ของหน้าต่างที่ไม่มีข้อความใด ๆ นี่คือภาพหน้าจอสำหรับตัวอย่าง: เราจะใส่ข้อความ (ชั่วคราว) ลงในช่องสีแดงในสกรีนช็อตนั่นคือช่องว่างทางด้านขวาของข้อความหรือด้านล่างบรรทัดสุดท้ายในบัฟเฟอร์ได้อย่างไร

3
มีวิธีที่ดีกว่าในการจัดการเอกสารหลายบรรทัดด้วย elisp หรือไม่?
ฉันเกลียดวิธีที่ elisp (ไม่แน่ใจว่า LISP โดยทั่วไป) จัดการเอกสารหลายบรรทัด (defun foo () "This is a multi liner docstring" (do-stuff)) ฉันแน่ใจว่าหวังว่าฉันจะทำสิ่งที่ชอบ (defun foo () (eval-when-compile (concat "This is\n" "a multi\n" "line\n" "docstring")) (do-stuff)) เพื่อให้การเยื้องสอดคล้องกัน น่าเสียดายที่คอมไพล์ eval-when-compile ไม่สามารถทำงานได้ ไม่มีใครมีความคิดใด ๆ

4
วิธีการตรวจสอบว่าบัฟเฟอร์กำลังเยี่ยมชมไฟล์?
ฉันต้องการตรวจสอบว่าบัฟเฟอร์ (พูด, ปัจจุบัน) บางอย่างกำลังเยี่ยมชมไฟล์หรือไม่ ฉันสามารถพูดได้: (if (buffer-file-name) ...) แต่ดูเหมือนจะไม่สง่างามมาก - สิ่งที่ฉันสนใจเป็นเพียงค่าบูลีนไม่ใช่ชื่อจริงของบัฟเฟอร์ที่มีปัญหา หากbuffer-file-nameฟังก์ชั่นนั้นเขียนขึ้นใน Elisp ฉันสามารถดูที่มาของมันเพื่อค้นหาว่ามันใช้อะไร - แต่มันเขียนใน C และในขณะที่ฉันสามารถติดตั้ง Emacs ได้ฉันกลัวว่าจะไม่พบชื่อ elisp สำหรับฟังก์ชั่นที่ตรวจสอบสิ่งที่ฉันหลังจากนั้น สิ่งที่ฉันต้องการมันคือฉันต้องการสร้างไดเรกทอรีตามชื่อไฟล์บัฟเฟอร์ปัจจุบันและตอนนี้ฉันกำลังทำสิ่งนี้ไม่มากก็น้อย: (make-directory (if (buffer-file-name) (file-name-base) "default-dir")) ดังนั้นสิ่งที่เป็นวิธีการ Elisp - สำนวนในการทำเช่นนี้?
9 elisp  buffers  files 

2
การดีบั๊กของ Emacs ที่ล้มเหลว
แม้ว่า Emacs (24.3.93.1) จะทำงานได้ดีหากเปิดตัวจาก Finder หากรุ่นเทอร์มินัลเปิดตัว: /Applications/Emacs.app/Contents/MacOS/Emacs -nw Emacs ล่มด้วย: Fatal error 11: Segmentation fault[1] 51512 abort /Applications/Emacs.app/Contents/MacOS/Emacs -nw. ดูเหมือนว่าปัญหาเกิดจากบรรทัดเดียวใน init.el (set-face-attribute 'default nil :font "Menlo-16") หากบรรทัดนั้นถูกคอมเม้นต์แล้วเวอร์ชันเทอร์มินัลของ Emacs ก็จะเริ่มต้นเช่นกัน เพื่อระบุสาเหตุของความผิดพลาดนั้นทำให้ฉันใช้เวลาหลายชั่วโมง (ลดการเริ่มต้นของฉันครึ่งต่อครึ่ง) ฉันทราบว่าในกรณีใด ๆ Emacs จะรับช่วงตัวอักษรและขนาดตัวอักษรใด ๆ ก็ตามที่ระบุไว้ในแอปเทอร์มินัล (โดยทั่วไปแล้วบรรทัดนั้นไม่มีความหมายใน cli) โดยทั่วไปแล้วจะมีวิธีที่ดีกว่าในการดีบัก Emacs ที่ล้มเหลวหรือไม่ บางทีใช้ cli debugger บางชนิดที่จะพิมพ์ข้อความอธิบายเพิ่มเติมหรือไม่ เหตุใดบรรทัดนั้นจึงส่งผลกระทบกับ Emacs ผ่านทาง CLI …

1
เบ็ดคืออะไร
เพื่อชี้แจง ... ตัวอย่างเช่นในเอกสารนี้: เบ็ดเป็นตัวแปรเสียงกระเพื่อมซึ่งถือรายการของฟังก์ชั่นที่จะเรียกในบางโอกาสที่กำหนดไว้ (นี่เรียกว่าการเรียกใช้ hook) ฟังก์ชั่นแต่ละอย่างในรายการเรียกว่าฟังก์ชั่น hook ของ hook ตัวอย่างเช่น hook kill-emacs-hookรันก่อนออกจาก Emacs ... ฉันคิดว่ามันกำลังพูดว่ามีตัวแปร (สัญลักษณ์) ชื่อkill-emacs-hookที่แสดงถึงรายการชุดของ "ฟังก์ชั่นเบ็ด" ที่จะทำงานเมื่อkill-emacs-hookมีการประเมินผลดังนั้นการปฏิบัติหน้าที่เหล่านั้น แก้ไข? แล้วก็ (add-hook 'text-mode-hook 'auto-fill-mode) กำลังเพิ่มauto-fill-modeในรายการที่ระบุโดยtext-mode-hookนอกเหนือจากสิ่งที่มีอยู่แล้ว ดี. ตอนนี้ (defcustom text-mode-hook nil "Normal hook run when entering Text mode and many related modes." :type 'hook :options '(turn-on-auto-fill flyspell-mode) :group 'wp) text-mode-hookที่ดูเหมือนว่าเรามีทั้งการสร้างหรือการเปลี่ยนแปลง …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.