Emacs

คำถาม & คำตอบสำหรับผู้ใช้ขยายหรือพัฒนา Emacs

5
วิธีติดตั้ง emacs 26 (หรือเวอร์ชั่นล่าสุด) บน mac
บางคน (ในอีกคำตอบ SE) กล่าวถึงคุณลักษณะที่มีเฉพาะใน 26 ดังนั้นฉันเดาว่าตอนนี้ฉันต้องอัพเกรด คุณติดตั้ง emacs 26 บน macOS Sierra ได้อย่างไร สิ่งที่ฉันพยายาม: googled ,how install emacs 26 Mac brew install emacs
16 osx  install  emacs26 

1
“ ไม่มีฟังก์ชั่น org-babel-execute สำหรับ c” และ“ no-org-babel-execute ฟังก์ชั่นสำหรับ c ++”
เวอร์ชั่น emacs ของฉันคือ 24.3.1 ฉันเข้าใจว่าฉันต้องวาง ob-C.el (หาได้จากที่นี่ ) ในเส้นทางที่ Emacs สามารถอ่านได้ ฉันคัดลอกโค้ดจากไฟล์. el ไปยังไฟล์. emacs ของฉันก่อนแล้วรีสตาร์ท emacs จากนั้นฉันไปที่บล็อกรหัส C (ภายในไฟล์ org) และพยายามเรียกใช้งาน (ใช้ Cc Cc) minibuffer กล่าวว่า 'ไม่มีฟังก์ชั่น org-babel-execute สำหรับ C' เรื่องเดียวกันเล่นด้วยความพยายามที่จะดำเนินการบล็อกรหัส C ++ โปรดทราบว่า R และ python ประเมินได้อย่างสมบูรณ์แบบจากภายในไฟล์ org ของฉัน ปัญหาดูเหมือนว่าจะมีเฉพาะกับภาษาที่รวบรวมเหล่านี้ ฉันลองวาง ob-C.el นี้ไว้ในไดเรกทอรี ~ / .emacs.d เพื่อดูว่าสิ่งนั้นช่วยได้หรือไม่ รีสตาร์ท …
16 org-babel 

2
วิธีการใช้ defcustom อย่างถูกต้อง?
เช่นเดียวกับผู้ใช้ Emacs ส่วนใหญ่ฉันได้ปรับแต่งโหมดด้วยการเปลี่ยนตัวแปร สิ่งที่ไม่เคยเกิดขึ้นกับฉันคือความคิดการเขียนโปรแกรมทั้งหมดที่อยู่เบื้องหลังการปรับแต่งสิ่งนี้และสิ่งนั้น ฉันรู้เรื่องนี้เมื่อฉันเริ่มดูซอร์สโค้ดของ eshell ฉันไม่ใช่โปรแกรมเมอร์เอลลิส แต่em-ls.elดูเหมือนว่าจะใช้defcustomเป็นdefgroupพิเศษ ฯลฯ ดูเหมือนว่านี่จะเป็นโลกเงาของตัวแปรที่กำหนดทั่วโลกซึ่งโค้ด elisp ใช้ ดังนั้นคำถามหนึ่งก็คือการใช้defcustomตัวแปรระดับโลก (ปรับแต่ง) อีกวิธีหนึ่งได้หรือไม่? ทุกคนสามารถชี้ให้ฉันเห็นวิธีการใช้อย่างถูกต้อง (เข้าใจก่อน) ความคิดทั้งหมดที่อยู่เบื้องหลังdefcustomเมื่อใดควรใช้ทำไมเมื่อไม่ อาจเป็นตัวอย่างสำหรับมือใหม่สำหรับมือใหม่
15 elisp  defcustom 


6
แสดงรายการไฟล์และไดเร็กทอรีย่อยทั้งหมดซ้ำ ๆ
มีวิธีหนึ่งอาจใช้แพ็คเกจเพื่อเรียกรายการไฟล์ทั้งหมดซ้ำ (พร้อมพา ธ ) และไดเรกทอรีย่อย (หรืออย่างน้อยไดเรกทอรีย่อยที่ว่างเปล่าเนื่องจากเส้นทางไปยังวัตถุที่ไม่ว่างเปล่าสามารถรวบรวมได้จากเส้นทางของ ไฟล์ที่อยู่ในนั้น) ของไดเรกทอรีปัจจุบันหรือไม่? ที่ใกล้เคียงที่สุดที่ฉันสามารถหาได้คือprojectile-find-fileฟังก์ชั่นของprojectileแพ็กเกจ (หรืออีกวิธีหนึ่งคือhelm-projectile-find-fileฟังก์ชั่นของhelm-projectileแพ็กเกจ) แต่ดูเหมือนจะไม่สามารถแสดงรายการโฟลเดอร์ว่าง นอกจากนี้ดูเหมือนว่าจะใช้งานได้เฉพาะกับ Git และที่เก็บข้อมูลการควบคุมเวอร์ชันอื่น ๆ แต่อาจมีวิธีแก้ไขสำหรับข้อ จำกัด นี้
15 files 

2
การแก้ไขเค้าร่างเช่นโหมดองค์กรสำหรับ JSON
ฉันพยายามแก้ไขไฟล์ Swagger JSON เป็น emacs มันมีวัตถุ JSON ซ้อนกันขนาดใหญ่ดังนั้นฉันต้องการยุบและซ่อนวัตถุบางส่วน ฉันได้ลองorigami-modeกำหนดค่าเหมือนorigami-c-style-parserในorigami-parser-alistแต่มันค่อนข้างไม่ซับซ้อน (คำว่า "parser" ดูเหมือนจะเป็นคำที่ยิ่งใหญ่เกินไปสำหรับสิ่งที่มันทำ) มันไม่ได้สังเกตว่าสตริงย่อยของพารามิเตอร์ Swagger URL {id}นั้นอยู่ในสตริง JSON ดังนั้นมันจึงยุบลงอย่างมีความสุขเช่นกันเมื่อฉันขอให้ยุบโหนดทั้งหมดในบัฟเฟอร์ยกเว้นโหนดปัจจุบัน ฉันไม่ต้องการให้ทำเช่นนั้น ฉันต้องการวิธีการของการยุบเพียง subtrees JSON เหมือนวัตถุที่ไม่สตริงสตริง JSON ที่เกิดขึ้นจะมีวงเล็บปีกกาในพวกเขา ฉันจะบรรลุเป้าหมายนี้ได้อย่างไร

1
รายการ '(a. b) เป็นจริงหรือไม่
ฉันสับสนกับ.สัญกรณ์จริงๆ คือ'(a . b)รายการ? (listp '(a . b))ผลตอบแทนที่ได้tแต่เมื่อฉันต้องการที่จะทราบความยาวของมันให้ข้อผิดพลาด(length '(a . b)) Wrong type argument: listp, bเช่นเดียวกับฟังก์ชั่นอื่น ๆ เช่นnth,mapcarอื่น ๆ พวกเขาทั้งหมดให้ข้อผิดพลาดเดียวกัน มีฟังก์ชั่นใดบ้างที่ฉันสามารถแยกความแตกต่างระหว่าง'(a b)และ'(a . b)? บริบท:ผมพบปัญหานี้เมื่อฉันต้องการที่จะใช้รุ่น recursive mapcarของ นี่คือการดำเนินการของฉัน (defun true-listp (object) "Return non-`nil' if OBJECT is a true list." (and (listp object) (null (cdr (last object))))) (defun recursive-mapcar (func list) …

2
ฉันสามารถใช้ภาพหน้าจอของเวกเตอร์ (SVG) ของ Emacs ได้หรือไม่
gtk-vector-screenshotโปรแกรมสามารถใช้ในการใช้หน้าจอเวกเตอร์ของ Gtk-3 การใช้งาน ดูเหมือนว่าจะทำงานได้โดยขอให้แอปพลิเคชันวาดตัวเองลงบนผืนผ้าใบ SVG Emacs บน GNU / Linux สามารถสร้างได้ด้วย Gtk + แต่การพยายามใช้แอปพลิเคชันดังกล่าวบนหน้าต่าง Emacs จะให้ภาพหน้าจอที่มีองค์ประกอบ GUI เช่นแถบเมนูเท่านั้น บัฟเฟอร์ไม่ถูกเรนเดอร์ (ฉันลองด้วยและไม่ใช้ไคโร) ไม่น่าแปลกใจนักเนื่องจากการแสดงบัฟเฟอร์ของ Emacs เกิดขึ้นในระดับต่ำมาก ยังมีวิธีการถ่ายภาพหน้าจอเวกเตอร์ที่ปรับขนาดได้ของ Emacsหรือไม่?
15 fonts  rendering  gtk3 

2
ฉันจะตั้งค่าเซิร์ฟเวอร์ ELPA ได้อย่างไร
เพื่อนและฉันต้องการเริ่มเขียนแพ็คเกจ emacs เฉพาะสำหรับใช้ใน บริษัท ของเรา (เชื่อฉันสิไม่มีอะไรที่เราเขียนจะเป็นที่สนใจของทุกคนนอก - เป็นการรวมเข้ากับเครื่องมือภายใน) เราต้องการทำการติดตั้งและบำรุงรักษาแพคเกจให้ง่ายที่สุดและเราคิดว่านี่หมายถึงการรวมเข้าด้วยpackage.elกัน เราต้องทำอะไรเพื่อตั้งค่าพื้นที่เก็บข้อมูลสำหรับการใช้งานดังกล่าว?

1
วันเกิดในองค์กรติดต่อ
ฉันเป็นผู้เริ่มต้นในโหมด org (และ Emacs สำหรับเรื่องนั้น) แต่ฉันคิดว่าโหมด org จะเป็นสถานที่ / รูปแบบที่ดีในการจัดเก็บผู้ติดต่อของฉัน สิ่งหนึ่งที่ฉันต้องการทำคือการเพิ่มวันเกิดให้กับผู้ติดต่อ ฉันพบorg-contacts.elซึ่งดูเหมือนจะมีสิ่งที่ฉันต้องการ: ฉันเพิ่มบุคคลใน contacts.org และเพิ่มคุณสมบัติวันเกิด * Ficitive Person :PROPERTIES: :EMAIL: fp@example.com :BIRTHDAY: 2000-09-24 :END: ตอนนี้อยู่ในไฟล์อื่น (Agenda.org) ฉันมีสิ่งต่อไปนี้: * Birthday %%(org-contacts-anniversaries) เมื่อฉันกดC-c a a( M-x org-agenda-list) ฉันเห็นวันเกิดของพวกเขาและอายุเท่าไหร่เจ๋งมาก! อย่างไรก็ตามสำหรับบางคนฉันรู้วันเกิดของพวกเขา แต่ไม่ใช่อายุของพวกเขา ยังฉันต้องการที่จะเห็นว่ามันเป็นวันเกิดของพวกเขาในปฏิทินของฉัน แต่เมื่อฉันป้อนวันเกิดในรูปแบบอื่น ๆ ฉันได้รับข้อผิดพลาด: Bad sexp at line 24 in [...]/org/agenda.org: (org-contacts-anniversaries) …

2
ใช้ package.el เพื่อติดตั้งและอัปเดต แต่ใช้แพ็คเกจสำหรับการโหลดและกำหนดค่า
หลังจากเพิ่งเรียนรู้เกี่ยวกับuse-packageฉันตัดสินใจที่จะพอร์ตการกำหนดค่าของฉันไป แต่พบว่าตัวเองลังเลที่จะให้ความสะดวกในpackage.elการติดตั้งแพ็กเกจและปรับปรุงให้ทันสมัยอยู่เสมอ ฉันได้พบมันเล็ก ๆ น้อย ๆ ที่ยุ่งยากในการรวมและuse-packagepackage.el โดยทั่วไปฉันสนใจที่จะเรียนรู้ว่าผู้คนรวมเข้าuse-packageกับpackage.elระบบได้อย่างไร แต่สำหรับคำถามที่เฉพาะเจาะจงกว่านี้ให้อ่านต่อไป นี่คือสิ่งที่ฉันต้องการ: list-packagesจะมีแพคเกจติดตั้งโดยผู้จัดการแพคเกจเพื่อให้สามารถเรียกดูได้อย่างง่ายดายสำหรับแพคเกจและให้พวกเขาปรับปรุงผ่าน ในการกำหนดค่าและโหลดแพคเกจโดยเฉพาะuse-packageดังนั้นฉันสามารถเห็นได้ง่ายในไฟล์ init ของฉันสิ่งที่ฉันกำลังโหลดและวิธีการกำหนดค่า เลือกฉันต้องการที่จะยังสามารถติดตั้งแพคเกจผ่านuse-package's :ensureคำหลัก ถ้าฉันทำความเข้าใจอย่างถูกต้องผมต้องการที่น้อยมากของสิ่งที่package-initializeไม่เพียง load-pathแต่โดยทั่วไปวิธีการที่จะกำหนดขึ้น ขณะนี้ฉันมีสิ่งนี้ในการกำหนดค่าของฉัน: ;(package-initialize) (setq package-enable-at-startup nil) (let ((default-directory "~/.emacs.d/elpa")) (normal-top-level-add-subdirs-to-load-path)) (require 'use-package) บรรทัดแรกที่ถูกคอมเม้นท์ดังนั้น Emacs 25 จะไม่เพิ่ม(package-initialize)ไฟล์ลงในไฟล์ init ของฉันอย่างมีประโยชน์ บิตที่มีnormal-top-level-add-subdirs-to-load-pathคือการประมาณสิ่งที่package-initializeจะทำให้load-pathการประมาณนั้นดูดีพอ ดูเหมือนว่าจะบรรลุความต้องการของฉันที่ 1 และ 2 แต่ไม่ใช่ 3 ถ้าฉันพยายามใช้:ensureฉันได้รับข้อความแสดงข้อผิดพลาดpackage.elว่าไม่ได้เริ่มต้น การโทรpackage-initializeจะแก้ไขปัญหานั้น แต่ฉันต้องการหลีกเลี่ยงสิ่งนั้นนับตั้งแต่) ฉันไม่ต้องการให้โหลดโหลดอัตโนมัติจำนวนมาก (ฉันชอบที่จะใช้use-packageสร้าง autoloads ที่ฉันต้องการได้อย่างแม่นยำ) และ …

4
การจัดรูปแบบรหัส SQL โดยอัตโนมัติ
มีมาตรฐานและรูปแบบการเข้ารหัสทั่วไปที่รู้จักกันดีสำหรับ SQL (เช่นการใช้อักษรตัวพิมพ์ใหญ่ที่สงวนไว้การวางคำหลักในบรรทัดที่แตกต่างกันเป็นต้น) Emacs มาพร้อมกับโหมดใด ๆ สำหรับสิ่งนี้หรือมีแพ็กเกจสำหรับการจัดรูปแบบ SQL เพื่อให้เป็นไปตามมาตรฐานทั่วไปหรือไม่?


1
วิธีการดำเนินการแทนแบบสอบถามแบบตามตัวพิมพ์ใหญ่ - เล็ก?
เมื่อฉันทำM-x query-replaceเพื่อแทนที่ทั้งหมดที่เกิดขึ้นvโดยwมันก็ตรงกับV(ตัวพิมพ์ใหญ่V) จะบังคับให้ emacs ค้นหาตัวพิมพ์เล็กได้vอย่างไร

1
ส่วนหัวของโหมด Org ในหลาย ๆ แห่งพร้อมกันหรือไม่ (รวม)
ฉันต้องการจัดระเบียบหัวเรื่องของฉันหลายวิธีพร้อมกัน (ด้วยความยืดหยุ่นในระดับเดียวกับที่ฉันมีเมื่อจัดระเบียบสิ่งต่าง ๆ ในที่เดียว - เช่นมากกว่าที่กำหนดไว้) เป็นการดีที่ฉันสามารถสร้างส่วนหัวของเอกสารแล้วสร้าง "ฮาร์ดลิงก์" ไปยังส่วนหัวที่อื่นซึ่งจะอัปเดตทั้งสองเมื่อเนื้อหาของส่วนหัวมีการเปลี่ยนแปลง สิ่งที่ดีที่สุดถัดไปคือ "ลิงค์นุ่ม" ซึ่งเก็บเนื้อหาส่วนหัวไว้ในตำแหน่งที่ยอมรับได้เพียงตำแหน่งเดียวและแสดงไว้ในตำแหน่งอื่น (และหากคุณแก้ไขด้วยเช่นกัน ตอนนี้สิ่งที่ดีที่สุดที่ฉันรู้คือทำแค่สร้างลิงค์ปกติซึ่งฉันต้องติดตามด้วยตนเองเพื่อดูเนื้อหา มีวิธีใดที่จะทำได้ดีกว่านี้หรือไม่?
15 org-mode 

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