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

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

4
การแทนที่สตริงชื่อ?
ฉันมักจะต้องทำการแทนที่ของสตริงเดียวกันหลายครั้ง: (format "%s %s %s" "a" "a" "a") ;; gives: "a a a" (เป็นเพียงตัวอย่างหลอกๆในกรณีนี้ดีกว่าที่จะใช้กาว "a" กับช่องว่าง แต่โดยทั่วไปแล้วฉันจัดการกับสถานการณ์ที่ซับซ้อนมากขึ้น) มีวิธีที่จะทำการทดแทนที่มีชื่อหรือไม่? เช่นในไพ ธ อนคนหนึ่งจะเขียน: "{0} {0} {0}".format("a") # or: "{name} {name} {name}".format(name="a")
13 elisp  string 

5
ฉันจะประเมิน elisp ในไฟล์ orgmode ได้อย่างไรเมื่อมันถูกเปิด
ฉันมีรหัส elisp ฉันต้องการเรียกใช้ในไฟล์ orgmode เมื่อโหลด (ต่างกันสำหรับไฟล์ที่แตกต่างกันและกำหนดไว้ในไฟล์เอง) มีวิธีทำเช่นนี้หรือไม่? ฉันไม่เห็นอะไรเลยในhttp://orgmode.org/manual/In_002dbuffer-settings.html หากฉันสามารถเพิ่มบางอย่างลงในการเริ่มต้น emacs ที่เรียกใช้โค้ดบล็อกที่มีชื่อเป็นพิเศษเมื่อใดก็ตามที่โหลดไฟล์ orgmode นั่นอาจเป็นวิธีแก้ปัญหา แต่ฉันไม่แน่ใจว่าจะทำเช่นนั้นได้อย่างไรและมีบางอย่างในตัว
13 org-mode  elisp 

1
ความหมายของระยะเวลาใน (. 123)
ฉันเรียนรู้. /path/to/fileใน bash ใช้เพื่อเรียกใช้ไฟล์ เพิ่งออกมาจากความอยากรู้อยากเห็นฉันทำอะไรบางอย่างเช่นดังต่อไปนี้ใน Emacs (. 123) ⇒ 123 (read "(. 123)") ⇒ 123 ดูเหมือนว่า Emacs เพียงแค่อ่าน(. 123)เป็น123สิ่งที่เกิดขึ้น?
12 elisp  list  read 

2
ฉันจะแก้ไขตัวอ่านของ Elisp ได้อย่างไร
การแก้ไขเครื่องอ่านจะช่วยให้สามารถแนะนำไวยากรณ์การอ่านใหม่ (เช่น#(hash table)และ'(quoted)) Lisps หลายคนมีความสามารถนี้ แต่ดูเหมือนจะไม่มีสิ่งอำนวยความสะดวกสำหรับ elisp
12 elisp 


3
ฉันจะตรวจสอบได้อย่างไรว่าตัวละครปัจจุบันเป็นตัวอักษรสำหรับโหมดหลักนั้นหรือไม่?
ฉันกำลังทำงานกับฟังก์ชั่นเล็ก ๆ น้อย ๆ ที่ดึงบรรทัดถัดไปสู่บรรทัดปัจจุบัน ฉันต้องการเพิ่มฟังก์ชั่นเพื่อที่ว่าถ้าบรรทัดปัจจุบันเป็นความคิดเห็นของบรรทัดและบรรทัดถัดไปเป็นความคิดเห็นของบรรทัดแล้วตัวละครความคิดเห็นจะถูกลบออกหลังจากการกระทำ "ดึงขึ้น" ตัวอย่าง: ก่อน ;; comment 1▮ ;; comment 2 การเรียกร้อง M-x modi/pull-up-line หลังจาก ;; comment 1▮comment 2 โปรดทราบว่า;;ตัวละครจะถูกลบออกก่อนหน้าcomment 2นี้ (defun modi/pull-up-line () "Join the following line onto the current one (analogous to `C-e', `C-d') or `C-u M-^' or `C-u M-x join-line'. If the current …

1
วิธีใช้อาร์กิวเมนต์ 'แบบโต้ตอบ' เมื่อเรียกใช้คำสั่งจากรหัส
ฉันมีคำสั่งที่เรียกtestใช้เพียงแค่การป้อนข้อมูลจากผู้ใช้และสะท้อนกลับ: (defun test (input) (interactive "MInput: ") (message "%s" input)) ฉันต้องการเขียนฟังก์ชั่นอื่นซึ่งจะเรียกมันว่า ล้มเหลวต่อไปนี้: (defun test-forward () (interactive) (test)) ด้วยข้อผิดพลาดนี้ test-forward: Wrong number of arguments: (lambda (input) (interactive "MInput: ") (message "%s" input)), 0 สิ่งนี้สมเหตุสมผลเนื่องจากtestใช้หนึ่งอินพุต ทำtest's input &optionalก็ทำให้test-forwardผลตอบแทนที่nilไม่ต้องทำอะไร วิธีที่ถูกต้องในการทำเช่นนี้คืออะไร?
12 elisp  commands 

5
วิธีในการแสดงข้อความแตกต่างกันอย่างสงบเสงี่ยม?
ฉันกำลังเขียนส่วนขยาย emacs สำหรับใช้กับการรู้จำเสียงและฉันกำลังมองหาความช่วยเหลือเกี่ยวกับคุณลักษณะเฉพาะ คำบางคำที่ตัวจดจำเสียงพูด (Dragon) รู้จำได้ไม่ดีอย่างต่อเนื่อง - มันไม่สำคัญว่าคุณจะฝึกมันกี่ครั้งก็ตามมันจะดูดที่จำคำบางคำได้ ในเวลาเดียวกันโดยทั่วไปเมื่อคุณเขียนหัวข้อหรือเมื่อเขียนโปรแกรมคุณจะใช้คำเดียวกันหลายครั้งซ้ำแล้วซ้ำอีก ดังนั้นฉันจึงเขียนโหมดที่ใช้การซ้อนทับเพื่อเปลี่ยนวิธีการแสดงคำในบัฟเฟอร์ มันใช้ตัวอักษรสุ่มในคำขีดเส้นใต้ในสีแบบสุ่มและวางเครื่องหมายกำกับการออกเสียงแบบสุ่ม (สำเนียงเครื่องหมายบนอากาศ ฯลฯ ) เหนือส่วนบนของมัน นี่คือภาพหน้าจอ (คุณอาจต้องซูมเพื่อดูเครื่องหมาย / ขีดเส้นใต้): จากนั้นคุณสามารถพูดว่า "ผมสีม่วง p" และมันจะมองหาคำที่มีสีม่วงขีดเส้นใต้ภายใต้ 'a' ที่มีเครื่องหมายกำกับออกเสียงที่ดูเหมือนผมและพิมพ์คำนั้นสำหรับคุณ ดังนั้นในภาพหน้าจอด้านบนที่บอกว่าจะทำให้ emacs พิมพ์ "regexp-quote" ให้คุณ แนวคิดนี้ช่วยให้คุณสามารถอ้างอิงคำใด ๆ ที่คุณใช้ไปแล้วบนหน้าจอโดยใช้ชุดคำที่ จำกัด ซึ่งตัวจดจำจะจดจำได้ดีอยู่เสมอ มันใช้งานได้ดียกเว้นในบางครั้งอาจมีการชนกัน เพื่อให้ฉันสามารถเรียนรู้ที่จะอ้างอิงคำอย่างเดียวกับที่ฉันใช้ bytes จาก md5 hash ของคำแทนที่จะ(random)เป็นอัลกอริธึมหรือกำหนดการเปลี่ยนแปลงที่หลีกเลี่ยงการชน ฉันพบเพียง 6 สีที่แยกแยะได้ง่าย (มันยากเมื่อขีดเส้นใต้มีความกว้างเพียงหนึ่งตัวอักษรและหนาพิกเซลเดียว) และ 3 เครื่องหมายที่แยกได้ง่ายสามารถแยกแยะได้ง่าย (ง่ายต่อการแยกออกจากกัน …

1
ข้อผิดพลาดที่อาจเกิดขึ้นจากการเปิดใช้งานการเชื่อมคำศัพท์สำหรับบัฟเฟอร์คืออะไร?
สิ่งนี้ได้รับแรงบันดาลใจจากการสนทนาของคำศัพท์ที่มีผลผูกพันและศัพท์ให้ในคำถามนี้ เนื่องจากการเชื่อมคำศัพท์ช่วยให้คุณมีความสามารถในการปิดที่มีประโยชน์ซึ่งผู้คนอาจคุ้นเคยในภาษาอื่นเช่น JavaScript ทำไมคุณไม่เปิดใช้งานตลอดเวลา การใช้ความเข้ากันได้แบบย้อนหลังกับ Emacsen รุ่นเก่านั้นไม่ได้เป็นปัญหาที่คุณควรมองหาหากเปิดใช้งานในบัฟเฟอร์รหัสดั้งเดิม

1
การปรับใช้ Elisp อีกครั้ง
Emacs ใช้ล่ามสำหรับ elisp ใน C ซึ่งทำหน้าที่เป็นเครื่องมือในการอ้างอิงตามความเป็นจริง มีการใช้งานของ elisp ในภาษาอื่น ๆ (โดยเฉพาะ Javascript) หรือไม่? อะไรคือชุดพื้นฐานที่จำเป็นที่สุดในการปรับใช้ elisp ใหม่อย่างสมบูรณ์? อะไรคือความยากลำบากที่สำคัญในการทำเช่นนั้น (เช่นการกำหนดขอบเขตแบบไดนามิก)
12 elisp 

5
จะเข้าใจรหัสการเรียกซ้ำได้อย่างไร
ฉันพบรหัสนี้ในคู่มือที่An Introduction to Programming in Emacs Lispแสดงการเรียกซ้ำด้วยความช่วยเหลือของcondฟังก์ชันเพื่อหาจำนวนของก้อนกรวดตามจำนวนแถวที่ป้อนเช่นถ้าแถว = 2 จากนั้นก้อนกรวดควรเป็น 3 ถ้า 4 แถวก็ควรเป็น 10 ก้อนกรวด ที่นั่น (defun triangle-using-cond (number) (cond ((<= number 0) 0) ((= number 1) 1) ((> number 1) (+ number (triangle-using-cond (1- number)))))) ประเมินถึง 10 หลังจากผ่านการโต้แย้ง 4: (triangle-using-cond 4) คู่มือไม่ได้อธิบายอย่างชัดเจนว่าเกิดอะไรขึ้นในแต่ละขั้นตอนของรหัสตัวอย่างนี้โดยเฉพาะและฉันไม่สามารถทราบได้ว่าการเรียกใช้ซ้ำเกิดขึ้นที่นี่ได้อย่างไร คุณกรุณาช่วยฉันเข้าใจกลไกทีละขั้นตอนว่าเกิดอะไรขึ้นในแต่ละตัวอย่าง?
12 elisp  learning 

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

3
วิธีที่ง่ายที่สุดในการใช้ฟังก์ชันเช่น format-time-string คืออะไร
format-time-string ฟังก์ชั่นใช้เวลาสตริงและแทนที่ชุดของโครงสร้างพิเศษในสตริงที่ (ตัวอักษรนำหน้าโดย%) ที่มีข้อความบางอย่าง ฉันต้องการที่จะใช้ฟังก์ชั่นเช่นนั้นในฟังก์ชั่นของตัวเอง: ฉันมี alist '((?n . name) (?r . reputation))ระหว่างตัวอักษรและสัญลักษณ์เช่น: "My name is %n, and my rep is %r"ฟังก์ชั่นควรใช้สตริงเช่น ควรแทนที่%nและ%rด้วยค่าของตัวแปรnameและreputationและส่งคืนผลลัพธ์ ควรจัดการ%%เช่นเดียวกับformat-time-string(แทนที่ด้วย%) วิธีที่ง่ายที่สุดในการใช้ฟังก์ชั่นนี้คืออะไร? มีห้องสมุดหรือฟังก์ชั่นที่จะช่วยอำนวยความสะดวกนี้หรือไม่? การจัดการ%%อย่างถูกต้องเป็นสิ่งสำคัญ
12 elisp 

1
ทำให้ตัวแปรบัฟเฟอร์ท้องถิ่นกลายเป็นส่วนกลางอีกครั้ง
ฉันกำลังทดลองกับตัวแปรท้องถิ่นและตั้งค่า: (defvar-local foo nil "Buffer local foo") ภายหลังฉันออกแบบโปรแกรมของฉันใหม่เพื่อใช้ตัวแปรทั่วโลกแทนการใช้: (defvar foo nil "Not buffer local foo") แต่ตัวแปรยังคงเป็นบัฟเฟอร์ในเครื่องและยัง(kill-local-variable 'foo)ไม่ได้ฆ่า โดยทั่วไปฉันจะ "ยกเลิก" ได้make-local-variableอย่างไร


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