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

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


4
โค้ด elisp เยื้องอัตโนมัติอีกครั้งเมื่อเพิ่มหรือลบโค้ดก่อนบล็อกที่เยื้อง
ว่าฉันมีรหัส elisp เช่น: (+ 2 3▮(+ 3 4)) มีวิธีที่จะเยื้อง sexp หลังเคอร์เซอร์อีกครั้งโดยอัตโนมัติเมื่อฉันเพิ่มหรือลบสัญลักษณ์? ดังนั้นหลังจากกดSPC 4 SPCฉันจะได้รับโดยอัตโนมัติ: (+ 2 3 4 ▮(+ 3 4)) ฉันจะทำคู่มือฉบับนี้โดยการโทรตามมาด้วยmark-sexp indent-regionมีวิธีที่ดีกว่าในการทำเช่นนี้?

5
แผนที่ฟังก์ชั่นในรายการทรัพย์สินหรือไม่
ถาม:วิธีการแมปฟังก์ชันใดในรายการคุณสมบัติคืออะไร ฟังก์ชั่นการทำแผนที่ต่างๆ ( mapcarและครอบครัว) แมปฟังก์ชั่นมากกว่าลำดับเช่นรายการ เราจะใช้ฟังก์ชั่นเหล่านี้เมื่อจัดการกับรายการคุณสมบัติได้อย่างไรเช่นเมื่อพยายามแมปกับคุณสมบัติแต่ละรายการที่มีอยู่ในรายการ (ซึ่งจะเป็นองค์ประกอบอื่น ๆ ที่เริ่มต้นจากองค์ประกอบแรก) สำหรับผมแล้วดูเหมือนว่าฟังก์ชั่นการแมปจะต้องเข้าถึงรายการในคู่ขององค์ประกอบมากกว่าเป็นองค์ประกอบของแต่ละบุคคล ในฐานะที่เป็นตัวอย่างของเล่นคนหนึ่งจะใช้รายการทรัพย์สินและรวบรวมค่าคุณสมบัติทั้งหมดได้อย่างไร ถ้ามันเป็นรายการเชื่อมโยงแทนมันจะค่อนข้างง่าย: (mapcar #'cadr '((:prop1 a) (:prop2 b) (:prop3 c))) ;=> (a b c) ฉันแน่ใจว่าสิ่งนี้สามารถทำได้ด้วยการวนรอบ แต่ดูเหมือนว่าจะลำบากเล็กน้อยและฉันสงสัยว่ามีวิธีใช้สำนวนมากกว่านี้หรือไม่
17 elisp  mapping 

1
การประเมินผลขัดจังหวะและสังเกตสแต็กปัจจุบันใน emacs-lisp debugger?
หากฟังก์ชั่น emacs-lisp เช่น hook ของโหมดหลักใช้เวลานานกว่าที่คาดไว้ในการเรียกใช้งานบางครั้งฉันต้องการขัดจังหวะและดูที่สแต็กปัจจุบัน โดยหลักการแล้วฉันต้องการดูค่าตัวแปรและอื่น ๆ ในโปรแกรมดีบั๊ก ฉันไม่ได้พูดเกี่ยวกับรหัสที่ฉันจงใจเรียกใช้งานในโหมด emacs-lisp แต่เป็นรหัสที่เรียกใช้ในการทำงานปกติของ emacs ฉันจะขัดจังหวะการเรียกใช้โค้ด emacs-lisp โดยตรงใน emacs ได้อย่างไร ฉันไม่ทราบล่วงหน้าว่าฟังก์ชั่นใดที่ฉันต้องแก้ไข ตัวอย่างเช่นการพิมพ์C-gในขณะที่มันขัดจังหวะการทำงานก็ไม่ได้บอกฉันว่าฟังก์ชั่นใดถูกขัดจังหวะ
17 elisp  debugging 

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

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] …

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

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

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 

3
Elisp regexps ^ และ $ vs `และ '
คู่มืออธิบายตัวละคร regexp พิเศษและ^ $เช่นเดียวกับในภาษาถิ่นปกติส่วนใหญ่ฉันรู้ว่าพวกเขาดูเหมือนจะตรงกับจุดเริ่มต้นหรือจุดสิ้นสุดของสตริง อย่างไรก็ตามฉันยังค้นพบว่ามี`และ'ตัวละครที่ใช้ได้ จากคำอธิบายที่พบที่นี่พวกเขาดูเหมือนจะตรงกับจุดเริ่มต้นหรือจุดสิ้นสุดของสตริง ใครช่วยอธิบายความแตกต่างระหว่างตัวละครพิเศษเหล่านี้พร้อมตัวอย่างและคำแนะนำในการใช้เมื่อไหร่? เมื่อฉันดูค่าของauto-mode-alistพวกเขาดูเหมือนจะใช้แทนกันเพื่อให้ตรงกับจุดสิ้นสุดของสตริง: (... ("\\.scss\\'" . scss-mode) ("\\.ya?ml$" . yaml-mode) ...)

3
จะรับหมายเลของค์ประกอบในรายการได้อย่างไร
ถาม:ฉันจะรับหมายเลของค์ประกอบในรายการได้อย่างไร nthรับหมายเลของค์ประกอบnจากรายการ: (nth 2 '(a b c d)) ; => c ฉันต้องการย้อนกลับ: รับหมายเลของค์ประกอบที่ระบุองค์ประกอบ: (some-function 'c '(a b c d)) ; => 2 ฉันอาจจะพลาด แต่ฟังก์ชั่นดังกล่าวมีอยู่หรือไม่? คนเราจะทำสิ่งนี้ได้อย่างไร
16 elisp 

3
วิธีสร้าง: คำหลัก?
ถาม: มีวิธีสร้างและใช้:keywordsอย่างไร? พิจารณาความพยายาม (ไร้เดียงสาที่เห็นได้ชัด) ในการเข้าถึงของเล่น alist ต่อไปนี้: (setf alist '((:key-1 "Key no. 1") (:key-2 "Key no. 2"))) (assq :key-1 alist) ; => (:key-1 "Key no. 1") (assq (make-symbol ":key-1") alist) ; => nil คีย์แรกทำงานตามที่คาดไว้ แต่คีย์ที่สองไม่ทำงาน ตราบเท่าที่ไม่มีmake-keywordฟังก์ชั่นที่ชัดเจนใครจะสร้างและใช้คำหลักได้อย่างไร แรงจูงใจดั้งเดิม: ฉันต้องแปลงสตริงเป็นคีย์ค้นหาที่เป็นสัญลักษณ์ซึ่งฉันสามารถใช้งานputคุณสมบัติได้ ในกระบวนการกำหนดคำถามนี้ฉันได้รับอย่างน้อยส่วนหนึ่งของคำตอบซึ่งฉันโพสต์แยกต่างหาก ฉันหวังว่าจิตใจที่แจ่มใสกว่าที่ฉันจะปรับปรุงได้
16 elisp  symbols 

1
จะรู้สถานะของบัฟเฟอร์ที่มองเห็น / ได้อย่างไร
ฉันกำลังเขียนส่วนขยายที่พูดถึงกระบวนการภายนอกดังนั้นจึงเป็นการกำหนดให้ลดจำนวนคำขอ 'hey whats up' เมื่อบัฟเฟอร์ของฉันไม่ได้โฟกัส ดังนั้นวิธีที่ดีที่สุดในการรับรู้คืออะไร: เมื่อบัฟเฟอร์ของฉันสามารถมองเห็นและมุ่งเน้น เมื่อบัฟเฟอร์ของฉันสามารถมองเห็นได้ แต่ไม่ได้โฟกัส เมื่อบัฟเฟอร์ของฉันไม่สามารถมองเห็นหรือไม่โฟกัส
16 elisp  buffers  focus 

2
วิธีการตรวจสอบว่าภายในคู่จับคู่?
ถาม:มีวิธีทั่วไปในการตรวจสอบว่ามีจุดอยู่ภายในคู่อักขระที่ตรงกันหรือไม่ นั่นคือ: มีฟังก์ชันเพรดิเคตทั่วไป (หรือบางอย่าง) ที่สามารถตัดสินได้ว่าจุดนั้นอยู่ระหว่างคู่ที่จับคู่กันหรือตัวละครที่เลือกโดยพลการหรือไม่? ฉันกำลังคิดเกี่ยวกับสิ่งที่จะประเมินtในพูดสถานการณ์ต่อไปนี้โดย!อ้างถึงประเด็น: "!" (quotes in general) ``!'' (LaTeX quotes) $!$ (LaTeX math) (!) (lisp parens) *!* (org emphasis) แก้ไข : syntax-ppssดูเหมือนจะเป็นจุดเริ่มต้นที่ดี แต่ก็ยังไม่ชัดเจนสำหรับฉันว่าจะปรับให้เข้ากับคู่ที่จับคู่แบบหลายตัวละครได้อย่างไร (เช่น '`คำพูดของ LaTeX' หรือแม้กระทั่งจับคู่<b>html tags</b>) ฉันสงสัยว่ามีวิธีแก้ปัญหาทั่วไปหรือไม่หรือต้องใช้เครื่องมือแยกวิเคราะห์
16 elisp  syntax 

3
ฉันจะค้นหาพา ธ ไปยังโปรแกรมที่เรียกใช้งานได้ด้วย Emacs Lisp ได้อย่างไร
กรณีการใช้งานปัจจุบันของฉันคือการค้นหาว่าCaskไฟล์ปฏิบัติการอยู่ที่ไหน(สามารถติดตั้งได้อย่างน้อยสองแห่งและมีปัญหาเกี่ยวกับเรื่องนี้) ฉันต้องการถังด้วยวิธีนี้: (require 'cask "~/.cask/cask.el") แต่ฉันจำเป็นต้องค้นหาเส้นทางที่ถูกต้องไปยังที่cask.elและเท่าที่ฉันรู้วิธีที่ง่ายที่สุดที่จะทำคือการหาที่ปฏิบัติการ ฉันจะทำสิ่งนี้ได้อย่างไร
16 elisp  files  cask 

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