Emacs

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


7
คัดลอกข้อความจาก Emacs ไปยังคลิปบอร์ด OS X
เมื่อฉันเรียก Emacs ใน terminal ข้อความแทนของโหมด GUI ปกติผมสามารถคัดลอก Emacs โดยเปิดใช้งานเริ่มต้นของภูมิภาคที่มีแล้วเลือกสิ่งที่ฉันต้องการแล้วทำC-SPCM-w มีวิธีใดที่จะทำให้ภูมิภาคคัดลอกวิธีนี้มีอยู่ในคลิปบอร์ด OSX เพื่อวางไว้ในหน้าเว็บ (นอกเหนือจากการใช้ Emacs ในโหมด GUI อย่างชัดเจน) ฉันไม่สนใจที่จะสร้างทางลัดที่แตกต่างในการทำเช่นนั้นและโดยพื้นฐานแล้วมันไม่จำเป็นต้องติดตั้งโมดูลใด ๆ ฉันเคยเห็นโพสต์นี้และลองคำตอบที่ได้รับการยอมรับ แต่มันใช้งานไม่ได้ตามที่คาดหวังไว้ข้างต้น ความคิดอื่น ๆ ?
25 osx  copy-paste 

1
วิธีไฮไลต์ข้อความอย่างถาวรในโหมดองค์กร
ฉันรู้ว่าฉันสามารถใช้*bold*, /italic/, _underlined_, =verbatim= and ~code~, and, if you must, ‘+strike-through+’ในการทำmarkupข้อความตามเอกสารโหมด orgแต่มันไม่เพียงพอสำหรับฉัน ( boldไม่ชัดเจนเมื่อดูไฟล์ org) ฉันรู้ว่าฉันสามารถกำหนดเองorg-emphasis-alistได้ แต่เอกสารไม่ได้บอกอะไรมาก สิ่งที่ฉันต้องการคือการเน้นข้อความที่เลือกเช่นenriched-modeภาพในหน้านี้ แต่enriched-modeจะบันทึกแฟ้มเป็นtext/enrichedรูปแบบและฉันต้องใช้enriched-modeไม่ได้org-modeตัวเอง ดังนั้นฉันจะกำหนดอีกครั้งหรือกำหนดมาร์กอัปใหม่ (อาจกำหนดเองorg-emphasis-alist) เพื่อเน้นข้อความเช่นenriched-modeนั้น ไฮไลท์เป็นไฟล์ถาวรในไฟล์นี้ (ฉันสามารถเห็นไฮไลท์ใน Emacs) ในเวลาเดียวกันสามารถส่งออกเป็นไฟล์ pdf หรือไฟล์ html
24 org-mode 

3
เคอร์เซอร์สามารถกระโดดกลับไปที่ตำแหน่งก่อนหน้าได้หรือไม่?
ฉันสามารถทำให้เคอร์เซอร์ของฉันในบัฟเฟอร์กระโดดกลับไปยังตำแหน่งสุดท้ายได้หรือไม่? (ดีกว่าโดยไม่ต้องทำเครื่องหมายตำแหน่งก่อนหน้า) ตัวอย่างเช่น Ca กระโดดไปที่จุดเริ่มต้นของบรรทัดปัจจุบันฉันสามารถข้ามกลับไปยังตำแหน่งเดิมได้หรือไม่? ตัวอย่างเช่นเมื่อ Cx Cf เพื่อเปิดไฟล์ในไดเรกทอรีอื่นฉันต้องการข้ามกลับไปยังตำแหน่งก่อนหน้าในชื่อพา ธ ขอบคุณ
24 cursor 

1
อัลกอริทึมแบบไหนที่ใช้?
ฉันต้องเพิ่มจำนวนเต็มเดียวในรายการที่เรียงลำดับแล้วซึ่งจะไปในตำแหน่งที่ถูกต้อง tought แรกของฉันเป็นอะไรที่ชอบ (sort (cons newelt list) #'<) แต่ให้ที่จะถูกจัดเรียงไว้แล้วเพียงหนึ่งแทรกมีความจำเป็นจริงๆซึ่งหมายถึงวิธีการแก้ปัญหานี้อาจจะไม่เหมาะสมอย่างน่ากลัวขึ้นอยู่กับอัลกอริทึมที่ใช้โดยlistsort ดังนั้นอัลกอริทึมที่sortใช้คืออะไร ฉันจะทำสิ่งต่อไปนี้ดีขึ้นไหม (let ((tail list)) ;; The first element is never less-than (while (and tail (< newelt (cadr tail))) (setq tail (cdr tail))) (setcdr tail (cons newelt (cdr tail))) list)

5
วิธีการจัดรูปแบบรหัสสวย (แทรกขึ้นบรรทัดใหม่เยื้อง ฯลฯ โดยอัตโนมัติ?
ฉันใช้spacemacsแต่น่าจะเป็นความรู้ emacs ที่ต้องการที่นี่ ฉันมีไฟล์ JSON ที่มีบรรทัดยาวหนึ่งบรรทัดสมมุติว่า JSON นี้จาก json.org/example: {"menu": {"id": "file", "value": "File", "popup": {"menuitem": [{"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"}]}}} ฉันอยากให้ emacs กลับมารวมตัวกันอีกครั้งซึ่งหมายความว่าฉันจะไม่เปลี่ยนตัวละครซ้ายสุดไปสู่ระดับการเยื้องที่เหมาะสม แต่แยกบรรทัดออกเป็นหลายบรรทัด ถ้าฉันใช้spacemacs/indent-region-or-buffer( SPC j =) แล้วข้อความจะไม่เปลี่ยนแปลงเลย ฉันจะขอให้ emacs แบ่งสายยาว ๆ นี้ได้อย่างไรและ reindent เพื่อให้ได้สิ่งนี้: {"menu": { "id": "file", "value": "File", …

3
วิธีที่เหมาะสมในการเปิดใช้งานโหมดรอง
ฉันมีโหมดฟูและจะเปิดใช้งานโหมดบาร์เล็ก ๆ น้อย ๆสำหรับมัน ดังนั้นวิธีใดที่ใช้กันทั่วไปและเป็นที่นิยมมากกว่า? A (add-hook 'foo-mode-hook 'bar-minor-mode) B (add-hook 'foo-mode-hook (lambda () "Turn on `bar-minor-mode' mode." (bar-minor-mode 1))) C (defun bar-minor-mode-on () "Turn on `bar-minor-mode' mode." (interactive) (bar-minor-mode 1)) (add-hook 'foo-mode-hook 'bar-minor-mode-on) D •ตัวแปร C แต่ฟังก์ชั่นผลักไปที่ต้นน้ำ E •ตัวแปร C แต่ฟังก์ชั่นเก็บไว้ในสูตรของปลั๊กอิน
24 hooks  minor-mode 

1
ฉันจะสลับอย่างรวดเร็วระหว่างไฟล์และบัฟเฟอร์ * scratch * ที่มีโหมดหลักเดียวกันได้อย่างไร
ในบางครั้งในขณะที่ทำงานกับรหัสคุณควรเปิดบัฟเฟอร์ * scratch * เพื่อวางข้อมูลโค้ดจากไฟล์รหัสนั้นอย่างรวดเร็ว หากฉันกำลังทำงานกับสคริปต์ Perl ฉันต้องการเปิดบัฟเฟอร์ * scratch * ด้วยcperl-modeอย่างรวดเร็ว มันจะเป็นการดีหากกระโดดกลับไปที่บัฟเฟอร์โค้ดที่ฉันทำงานอยู่

1
ตั้งค่าพื้นหลังของบล็อก <code> ที่ส่งออกโดยองค์กรตามธีม
ฉันส่งออกไฟล์โหมดองค์กรค่อนข้างบ่อยและเกือบทั้งหมดมีรหัสในนั้น เมื่อฉันทำรหัสส่งออกมันจะจบลงด้วยการระบายสีข้อความตามธีมของฉันอย่างไรก็ตามฉันสลับไปมาระหว่างธีมสีเข้มและธีมสีอ่อนเป็นประจำ ในกรณีของชุดรูปแบบแสง&lt;code&gt;บล็อกต้องมีพื้นหลังสีอ่อนและสำหรับชุดรูปแบบสีเข้มที่พวกเขาจำเป็นต้องมีพื้นหลังสีเข้ม (มิฉะนั้นฉันท้ายด้วยข้อความสีเหลืองอ่อนบนพื้นหลังสีเทาและไม่สามารถอ่านได้) ฉันต้องเพิ่มบรรทัดนี้สำหรับพื้นหลังสีเข้ม: #+HTML_HEAD: &lt;style&gt;pre.src {background-color: #303030; color: #e5e5e5;}&lt;/style&gt; และอย่าลืมลบมันทุกครั้งที่ฉันเปลี่ยนเป็นพื้นหลังสีอ่อน มีวิธีที่ฉันสามารถตรวจจับสีพื้นหลังของชุดรูปแบบปัจจุบันในเวลาส่งออกโดยอัตโนมัติและใช้ใน CSS ของ HTML ที่ส่งออกหรือไม่ แก้ไข ฉันจะตอบคำถามของ Jordon (ขอบคุณ Jordon คุณจะได้คะแนน karma!) อย่างไรก็ตามฉันต้องการโพสต์คำตอบที่ฉันเพิ่มลงในรหัสของฉันเนื่องจากเป็นคำตอบที่แก้ไขเล็กน้อย: (defun my/org-inline-css-hook (exporter) "Insert custom inline css to automatically set the background of code to whatever theme I'm using's background" (when (eq exporter 'html) (let* …

6
สลับไปมาระหว่างเค้าโครงหน้าต่าง
เมื่อฉันกำหนดค่าเลย์เอาต์ที่กำหนดเองจากนั้นเพียงแค่ต้องดูชั่วคราวในไฟล์เดียวแบบเต็มหน้าจอและเมื่อฉันต้องการเลย์เอาต์นั้นกลับมา - ฉันต้องทำการรีโฟลด้วยตนเอง ฉันต้องการรหัสปลั๊กอิน / elisp เพื่อบันทึกเลย์เอาต์ของฉันและสามารถสลับไปมาระหว่างเลย์เอาต์ที่บันทึกไว้ได้ UPDATE ขอบคุณทุกคน. ข้อเสนอแนะabo-abo ที่จะใช้โหมดผู้ชนะเป็นสิ่งที่ดีจริงๆและฉันได้รับมันทำงานในเวลาศูนย์ wasamasaแนะนำปลั๊กอินที่ยอดเยี่ยมมากมายที่ฉันไม่เคยได้ยินและให้ข้อมูลวิธีใช้รีจิสเตอร์ Jordon Biondoอธิบายให้ฉันทราบถึงวิธีการใช้รีจิสเตอร์และสิ่งนี้เป็นสิ่งที่ฉันต้องการในวิธีที่ง่ายที่สุด ขอบคุณทุกคน.
24 window  package  frames 

2
ย้อนกลับก้อนใหญ่ใน Magit 2.1.0
ฉันเพิ่งอัพเกรดเป็น magit 2.1.0 (และรวมถึง emacs 25.0.50 และ git 2.3.1) ก่อนหน้านี้ใน*magit*บัฟเฟอร์ฉันสามารถ: เลือกก้อนใหญ่ในพื้นที่ Unstaged พิมพ์vและตอบตกลงเพื่อย้อนกลับ มันมีประโยชน์ แต่ตอนนี้ใน magit 2.1.0 "Cannot reverse unstaged changes"มันจะช่วยให้ข้อผิดพลาด: ทำไม? ด้วยการบอกใบ้จากข้อความแสดงข้อผิดพลาดฉันค้นพบว่าฉันยังคงสามารถทำได้แม้ว่าจะอยู่ในลักษณะ "ย้อนหลัง" ด้วยขั้นตอนเพิ่มเติม: sเดือดดาล (รู้สึกย้อนกลับ; ย้ายไปใกล้กับสถานะที่กำหนด) นำทางลงและเลือกในพื้นที่จัดฉาก กดvตอบใช่ อย่างไรก็ตามก้อนใหญ่ยังคงเป็นฉากดังนั้นในที่สุดฉันก็ต้องขึ้นuเวทีก้อนใหญ่ นี่เป็นข้อบกพร่องหรือเป็นความตั้งใจและ / หรือฉันหนาแน่น ถ้าอย่างหลังคุณช่วยฉันเข้าใจไหม UPDATE: หลังจาก RTFinfo-ing อย่างละเอียดฉันเห็นว่ามีสองคำสั่ง: v magit-reverse กลับรายการการเปลี่ยนแปลง ณ จุดในแผนผังการทำงาน k magit-discard ลบการเปลี่ยนแปลงที่จุดจากต้นไม้ทำงาน ดูเหมือนว่าk magit-discardจะทำสิ่งที่ฉันเคยvทำมาก่อน มันทำงานได้กับก้อนใหญ่ที่ไม่มีสเตจ …
24 magit 

4
org: วิธีเรียงลำดับส่วนหัวตาม TODO แล้วตามลำดับความสำคัญได้อย่างไร
ฉันมักจะมีรายการเช่นนี้: * Main heading ** TODO [#A] Make world better ** TODO [#B] Make Emacs better ** TODO [#B] Customize emacs ** DONE [#C] some task ** TODO [#A] Launch rocket to mars ฉันต้องการเรียงลำดับตาม taskword ของ 'คำแรก' จากนั้นรายการต่าง ๆ ใน TODO เรียงฉันต้องการเรียงลำดับความสำคัญ (จากนั้นจะเป็นการดีหากต้องการจัดเรียงเพิ่มเติมโดย "Effort") และฉันหมายถึงในปัจจุบันฉันสามารถคลิกที่หัวข้อหลักและเรียงลำดับเด็ก ๆ ได้ตามลำดับความสำคัญหรือตามคำหลักที่ต้องทำ การเรียงลำดับเป็นไปได้ทั้งสองอย่างเช่นการจัดเรียงกลยุทธ์หรือไม่? ปัจจุบันฉันมีสองหัว * …
24 org-mode  sorting 

5
วิธีอัพเดตแพ็กเกจที่ติดตั้งด้วยแพ็กเกจการใช้งาน
ฉันใช้use-packageในการติดตั้งและกำหนดค่าแพ็คเกจ (แพ็คเกจเหล่านี้ส่วนใหญ่อยู่ใน melpa) มีวิธีอัตโนมัติที่ชัดเจนในการรักษาแพ็คเกจเหล่านี้ให้ทันสมัยหรือไม่? ถ้าไม่เป็นเช่นนี้กระบวนการทำงานที่ดีที่สุดในกรณีนี้คืออะไร? หมายเหตุ:คำถามที่คล้ายกันมากที่นี่พร้อมคำตอบ แต่ฉันต้องการชี้แจงเกี่ยวกับ "คุณจะต้องจัดการกับการติดตั้งการปรับปรุง" ฉันไม่สามารถออกความเห็นเกี่ยวกับคำตอบสำหรับการชี้แจงเนื่องจากฉันไม่มีชื่อเสียงเพียงพอ

2
การส่งออกตัวแบ่งไฟล์ org เมื่ออัปเกรดเป็น orgmode 8.3
โหมด orgmode ของฉันเพิ่งได้รับการอัพเดทเป็น 8.3 และฉันพบว่าฉันไม่สามารถส่งออกไฟล์init.orgของฉันเป็น HTML ได้อีกต่อไป ฉันได้รับผลลัพธ์ต่อไปนี้ใน*Messages*บัฟเฟอร์: org-babel-exp process emacs-lisp at line 34... org-babel-exp process emacs-lisp at line 44... org-babel-exp process emacs-lisp at line 51... ... hundreds of lines like these ... apply: Wrong type argument: listp, #("John's Emacs Config" 0 19 (:parent (#0))) ดูเหมือนว่าจะมีปัญหาในการแยกวิเคราะห์ส่วนหัวบางส่วน ฉันลองลบTITLEและAUTHORส่วนหัวและสามารถส่งออกได้

2
Emacs คืออะไรในยุค 80
ฉันมองไปรอบ ๆ เพื่อหาภาพของการแจกแจงของ Emacs โบราณ แต่ก็ไม่มีประโยชน์ ซอร์สโค้ดสำหรับ Emacs 16.56 ตั้งแต่วันที่ 15 กรกฎาคม 1985มีให้ที่Githubแต่ฉันไม่สามารถสร้างมันได้ กระดาษ Stallman Emacsดั้งเดิมอธิบาย Elisp แรงจูงใจเบื้องหลัง Emacs และนามสกุลเก่าบางอัน - แต่ก็ไม่เพียงพอที่จะสร้างสิ่งที่รู้สึกเหมือนเล่นกับมัน คำถามของฉันคือ Emacs มีลักษณะอย่างไรในสมัยนั้น? ก่อนที่จะถึงโหมด org, MELPA, magit, ภาษาส่วนใหญ่ที่เรารู้จักในวันนี้ - ผู้คนทำอะไรนอกเหนือจากการแฮ็ค Lisp หรือไม่? มีแพ็คเกจที่คนใช้ซึ่งตอนนี้ถูกลืมไปหมดแล้วใช่ไหม "UI" มีลักษณะอย่างไร และเป็นคำถามสุดท้าย: มีอะไรที่เรามีอยู่ทุกวันนี้ที่ไม่เปลี่ยนแปลงจากการเปิดตัว GNU Emacs ครั้งแรกหรือไม่? ฉันสนใจที่จะรับฟังจากคนที่เคยใช้มัน (ฉันติดแท็ก terminal-emacs เพราะคำถามต้องมีอย่างน้อยหนึ่งแท็ก)

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