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

1
ความแตกต่างระหว่างฟังก์ชั่นและคำสั่งคืออะไร?
เมื่อโพสต์คำถามและคำตอบที่นี่บางครั้งผู้คนก็ใช้คำว่า "ฟังก์ชั่น" และ "คำสั่ง" แทนกันได้ ในกรณีอื่น ๆ ผู้คนใช้เพียงหนึ่งในสองคำเพื่อหารือเกี่ยวกับรหัสเฉพาะ เนื่องจากโพสต์มักจะเน้นที่หัวข้ออื่นพวกเขาไม่ได้อธิบายว่าทำไมพวกเขาจึงใช้ศัพท์หนึ่ง แต่ไม่ใช่อีกหัวข้อหนึ่ง ดังนั้น: ถาม:ใน Emacs Lisp ความแตกต่างระหว่างฟังก์ชั่นและคำสั่งคืออะไร?

2
ฉันจะทดสอบและใช้นิพจน์ปกติของ Perl แบบโต้ตอบได้อย่างไร
สมมติว่าฉันมีบัฟเฟอร์พร้อมข้อความ ฉันต้องการทดสอบการแสดงออกปกติ (ประเภท Perl นึกคิด) กับบัฟเฟอร์ของฉันและมี Emacs เน้นการแข่งขันในนั้น ตัวอย่างเช่น regexp ต่อไปนี้ ( นำมาจาก Wikipedia ): (?<=\.) {2,}(?=[A-Z]) จะจับคู่ดังต่อไปนี้ในข้อความต่อไปนี้: การแสดงออกปกตินี้โดยเฉพาะอย่างยิ่งการจับคู่อย่างน้อยสองช่องว่างที่เกิดขึ้นหลังจากระยะเวลา(.)และก่อนที่ตัวอักษรตัวพิมพ์ใหญ่ Emacs จัดเตรียมmatcher นิพจน์ปกติเชิงโต้ตอบสำหรับนิพจน์ปกติของPerlหรือไม่ หากคำตอบของคำตอบคือไม่ใช่: มีเหตุผลที่สนับสนุนพื้นเมืองของการแสดงออกปกติPerlไม่ได้ (เคย) พิจารณาใน Emacs? (พิจารณาว่าเป็นมาตรฐานที่รู้จักกันดีใน Unix / Linux) วิธีการหนึ่งสามารถดำเนินการเกี่ยวกับการสร้างหนึ่ง matcher Perl regexp เช่น? (อาจจะเรียก Perl ภายใต้ประทุนหรือก่อนการแปลง regexp Perl เป็นตัวแปรที่สนับสนุน?)

1
เปิดใช้งาน M-! เป็น M- & (a'ka emacs equiv เพื่อ bash Ctrl-Z)
บางครั้งฉันM-! some_commandก็พบว่าคำสั่งทำงานนานกว่าที่ฉันคาดไว้และทำให้ emacs ของฉันหยุดนิ่งเป็นเวลานาน ดังนั้นฉันจึงเคลือบที่ emacs ที่แช่แข็งของฉันและเตะตัวเองเพื่อไม่ใช้M-& some_commandและสัญญากับตัวเองว่าจะใช้M-&ในครั้งต่อไป แต่M-!อยู่ในความทรงจำของกล้ามเนื้อมานานหลายสิบปี…และแน่นอนมีCtrl-Gแต่มีบางกรณีที่การสั่งการและสั่งการซ้ำอีกครั้งมันไม่ได้ดีกว่า (อาจเป็นไปได้ที่จะทำลายฏ ความผิดพลาดที่คล้ายกันในเปลือก konsole เป็นเล็กน้อยเพื่อแก้ไขCtrl-Z, bgและงานที่จะทำงานในพื้นหลัง มีเคล็ดลับที่คล้ายกันใน emacs หรือไม่ - วิธีเปลี่ยนคำสั่งเบื้องหน้า (ซิงโครนัส) ที่ทำงานอยู่ในขณะนี้ให้เป็นแบ็คกราวน์ (แบบอะซิงโครนัส) หรือไม่? หมายเหตุ: ในกรณีที่เป็นไปไม่ได้สำหรับการเริ่มต้น M-!ฉันเปิดให้คำแนะนำวิธีการ rebind M-!เป็นอย่างอื่น (สิ่งที่จะเป็นหน้าที่เทียบเท่านอกเหนือจากเคล็ดลับนี้)

1
เหตุใดฉันไม่ผูกฟังก์ชันของฉันกับคีย์หรือเรียกมันด้วย Mx
ฉันเขียนฟังก์ชั่นและฉันต้องการเรียกมันผ่าน Mx และผูกมันไว้กับกุญแจ นี่คือฟังก์ชั่นของฉัน: (defun my-function () (message "This is a great function")) ถ้าฉันพยายามโทรด้วยM-x my-functionฉันได้รับข้อผิดพลาด: [no match]ใน mini-buffer ถ้าฉันพยายามผูกมันไว้กับกุญแจ (หรือคลิกเมาส์): (global-set-key (kbd "C-c a") 'my-function) ดูเหมือนว่าจะใช้งานได้ แต่เมื่อฉันพยายามโทรด้วยC-c aฉันได้รับข้อผิดพลาด อาร์กิวเมนต์ประเภทไม่ถูกต้อง: commandp, my-function ทำไมฉันถึงใช้ฟังก์ชั่นไม่ได้?

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