Emacs

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

4
สร้างเฟรมใหม่ด้วยโหมดบรรทัดเท่านั้น
ฉันต้องการสร้างเฟรมใหม่ที่ไม่มีอะไรนอกจากโหมดบรรทัด โดยเฉพาะอย่างยิ่งไม่ใช่บัฟเฟอร์ไฟล์ ทำไมฉันต้องการสิ่งนี้ ฉันใช้การตอกบัตรของโหมดองค์กรเพื่อกำหนดเวลาทำงาน Org-mode แสดงตัวจับเวลาสำหรับงานปัจจุบันที่ฉันกำลังทำงานในโหมดบรรทัดและอัปเดตตัวจับเวลาแบบเรียลไทม์ ฉันใช้แอพอื่นนอกเหนือจาก Emacs ดังนั้นเมื่อฉันเปลี่ยนมาใช้ (เช่นเมื่อใช้เบราว์เซอร์หรือเทอร์มินัล) ฉันยังต้องการดูตัวจับเวลาที่กำลังทำงานอยู่ ฉันคิดว่าฉันสามารถสร้างเฟรมใหม่ได้ แต่เมื่อฉันคลิกที่ตัวจับเวลาในโหมดบรรทัดไฟล์. org จะถูกเปิดในเฟรมใหม่ (ซึ่งถูกปรับขนาดแล้วเพื่อแสดงเฉพาะโหมดบรรทัด) แทนที่จะกระโดดกลับไปที่ มันอยู่ในเฟรมแรก นี่คือลักษณะบรรทัดโหมดของฉัน (แถบสีฟ้า) - นั่นคือทั้งหมดที่ฉันต้องการในเฟรมใหม่: (ในที่สุดฉันจะต้องหาวิธีทำให้เฟรมใหม่ปรากฏอยู่ด้านบนเสมอ แต่นั่นอยู่นอกขอบเขตของคำถามนี้) ฉันใช้ OS X หากมีความเกี่ยวข้อง
13 mode-line  osx 

2
“ ป๊อป” หน้าต่างเข้าไปในกรอบ
บ่อยครั้งที่ฉันหน้าต่างของฉันถูกแบ่งโดยอัตโนมัติจนกว่าฉันจะตัดสินใจเองว่าเฟรมปัจจุบันไม่มีอสังหาริมทรัพย์เพียงพอสำหรับพวกเขาทั้งหมด เมื่อสิ่งนี้เกิดขึ้นฉันจะลบหน้าต่างด้วยตนเองสร้างเฟรมและสลับไปที่หน้าต่างที่ถูกลบนั้น ฉันจะเขียนฟังก์ชัน elisp ที่ทำสิ่งนี้ได้อย่างไร ฉันเหนื่อย: (defun pop-window-into-frame () (interactive) (delete-window) (make-frame-command) (switch-to-prev-buffer)) แต่ด้วยเหตุผลบางอย่างนี้ไม่ได้ทำในสิ่งที่ฉันคิดว่ามันควร
13 window  frames 

7
รหัส Elisp เพื่อตรวจสอบการเชื่อมต่ออินเทอร์เน็ต
เมื่อฉันเปิด Emacs มันจะประเมินไฟล์ init ของฉันซึ่งรวมถึงการรีเฟรชคลังข้อมูลแพคเกจของฉันผ่านการเชื่อมต่ออินเทอร์เน็ต นี่เป็นปัญหาเมื่อฉันไม่มีการเชื่อมต่ออินเทอร์เน็ตดังนั้นฉันจำเป็นต้องป้องกันการเรียกใช้โค้ดนั้นเมื่อเริ่มต้น Emacs โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต เพื่อแก้ปัญหานี้ฉันสงสัยว่ามีวิธีให้ Emacs เพิกเฉยต่อรหัสรีเฟรชแพ็กเกจหรือไม่เมื่อฉันไม่มีการเชื่อมต่ออินเทอร์เน็ต นี่คือสองสามบรรทัดแรกของฉันinit.el: ;; Requisites: Emacs >= 24 (require 'package) (package-initialize) ;; PACKAGE MANAGEMENT (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t) (package-refresh-contents) ฉันคิดว่าฉันสามารถเพิ่มรหัสเพื่อโหลดไฟล์ Emacs ของฉันดังนี้ ;; Requisites: Emacs >= 24 (when (connected-to-internet-p) ; I need this predicate function (require 'package) (package-initialize) (add-to-list …
13 elisp  networking 

1
การพึ่งพาองค์กร TODO ที่ยืดหยุ่นได้หรือไม่
ฉันต้องการorg-modeทำสิ่งที่OmniFocusทำ เมื่องานด้านล่างในรายการตามลำดับเสร็จสมบูรณ์งานถัดไปในรายการจะปรากฏในวาระการประชุม มีความคิดเกี่ยวกับวิธีที่ฉันพยายามจัดการกับปัญหานี้หรือไม่? ฉันต้องการเขียนต้นไม้ที่มีใบไม้และมีเพียงใบที่มองเห็นได้ในบางวาระ ฉันยินดีที่จะลองทำเช่นนี้ * PENDING buy milk ** PENDING go to store *** PENDING get in car **** TODO find car keys **** TODO put on pants อยู่ที่ไหน "ได้รับในรถ" โดยอัตโนมัติไปจากPENDINGไปTODOเมื่อ "พบกุญแจรถ" และ "ใส่กางเกง" มีการทำเครื่องหมายDONEในวาระที่บาง TODOแต่ทางที่ดีฉันต้องการเพียงแค่สร้างรายการพิเศษของรายการทั้งหมดในระดับเดียวกันและทำเครื่องหมายด้านล่างหนึ่ง

2
แมโครถูกขยายเมื่อรวบรวมไฟล์หรือไม่?
ฉันมีมาโครที่ต้องขยายในทุก ๆ อินสแตนซ์ของการใช้งานคอมไพล์เวลา มีวิธีที่ฉันสามารถระบุให้เป็นเช่นนั้นโดยไม่ต้องผ่าน codebase และตัดสายแต่ละอย่างด้วยeval-when-compileหรือไม่

2
ข้อ จำกัด ในทางปฏิบัติเกี่ยวกับขนาดไฟล์โหมดองค์กรหรือไม่
ฉันมีไฟล์โหมดองค์กรที่ทำงานประมาณ 6,000 บรรทัดพร้อมพาดหัวระดับบนสุดหนึ่งร้อยรายการ มันเริ่มต้นที่จะใช้เวลาประมาณหนึ่งนาทีในการโหลดหรือบันทึกและบางครั้งก็ส่ง emacs เข้าไปในวัชพืชและฉันต้องบังคับให้เลิกมัน คุณคิดว่านี่เป็นไฟล์ที่ใหญ่เกินกว่าจะจัดการได้จริงในโหมดองค์กรหรือไม่? คุณมีประสบการณ์กับไฟล์ที่ใหญ่กว่านี้ไหม? คุณประสบกับความล่าช้าประเภทเดียวกันหรือไม่? หรือฉันควรมองหาสาเหตุของความเชื่องช้าที่อื่นเช่นแพ็คเกจ emacs อื่น ๆ ที่ฉันติดตั้งไว้หรือไม่ บางทีฉันแค่ถาม emacs ทั่วไปมากเกินไป นี่คือ homeac emacs 24.4 บน Mac OS X Mavericks

1
การเพิ่มประสิทธิภาพการล็อคแบบอักษร
ฉันต้องการที่จะทำการจับคู่ชุดตัวอักษรของตัวล็อค ฉันมีคำจำกัดความของฟังก์ชั่นที่เริ่มต้นด้วยรายชื่อและฉันต้องการให้ชื่อเหล่านั้นถูกเน้นอยู่ภายในส่วนของฟังก์ชั่น ฉันได้สร้างฟังก์ชั่นที่ทำสิ่งนี้และลงทะเบียนเป็นฟังก์ชั่น jit-lock ด้วย jit-lock-register อย่างไรก็ตามประสิทธิภาพการทำงานค่อนข้างแย่และการเลื่อนล่าช้าในไฟล์ขนาดใหญ่ ฉันจะวัดประสิทธิภาพได้อย่างไร ถ้าฉันเพียงแค่เรียกฟังก์ชั่นของฉันในไฟล์ขนาดใหญ่ (ที่มีเวลาลอยก่อนและหลังหรือด้วย elp) ฉันได้รับประสิทธิภาพที่แตกต่างกันอย่างดุเดือดมันใช้เวลาตั้งแต่ 0.65 ถึง 12 วินาที มีวิธีแนะนำให้ใช้ประสิทธิภาพการล็อคแบบอักษรมาตรฐานหรือไม่ มีประสิทธิภาพแตกต่างกันหรือไม่ระหว่างตัวจับคู่แบบยึดที่กำหนดไว้ในแบบอักษร - ล็อค - คำหลักและเพิ่มฟังก์ชั่นผ่านทาง jit-lock-register? แก้ไข: ดูเหมือนว่าความแปรปรวนของประสิทธิภาพนั้นเกี่ยวข้องกับการรวบรวมขยะการเรียกใช้ฟังก์ชั่น jit-lock ของฉันช้าลงอย่างต่อเนื่องทุกครั้งที่เรียกใช้จนกว่าการรวบรวมขยะจะเริ่มขึ้น

2
เหตุใดการพิมพ์ '<<<' แทนที่จะสร้าง '<< EOF \ n <' เมื่ออยู่ในโหมดเชลล์สคริปต์
เมื่อใดก็ตามที่ฉันแก้ไขเชลล์สคริปต์ใน emacs และพิมพ์บั้งสามตัวเพื่อเปลี่ยนเส้นทางสตริงดิบไปยัง stdin emacs จะแทรกอักขระ 'EOF' และบรรทัดใหม่ระหว่างพวกเขาดังนั้น cat &lt;&lt;&lt; 'some string' กลายเป็น cat &lt;&lt;EOF &lt; 'some string' ฉันสามารถย้อนกลับและลบอักขระพิเศษเพื่อรับบัฟเฟอร์ในสถานะที่ฉันต้องการ แต่นี่เป็นพฤติกรรมที่น่าสะพรึงกลัวมากและดูเหมือนว่าจะเกิดขึ้นในโหมด shell-script เท่านั้นซึ่งโดยปกติแล้วเป็นครั้งเดียวที่ฉันพิมพ์รูปแบบนี้ มีวิธีปิดใช้งานพฤติกรรมนี้หรือไม่
13 bash  shell-mode 

2
การเยื้องและการนำทางที่ดีขึ้นในซอร์สโค้ดแอสเซมบลี
เมื่อฉันเขียนโค้ด C หรือ Java มันเป็นเรื่องปกติมาก แต่ด้วยแอสเซมบลี ( asm-mode) มันไม่เป็นระเบียบ ฉันใช้และauto-complete yasnippetฉันสร้างสนิปเพตและใช้มัน แต่การจัดระเบียบโค้ดและการเยื้องไม่เป็นระเบียบ แพคเกจใดจะช่วยฉัน: เยื้องรหัสและความคิดเห็นอย่างถูกต้องได้อย่างง่ายดายเพื่อให้ฉันสามารถดูว่าแต่ละชิ้นของรหัสกำลังทำอะไรอยู่ สำรวจรหัสจำนวนมากดังนั้นฉันสามารถข้ามไปมาระหว่างชิ้นส่วนของรหัสได้อย่างง่ายดายหรือไม่

1
การจัดตำแหน่งข้อความในรายการหมายเลขโหมดองค์กรหรือไม่
ถาม:มีวิธีใดที่จะเติมศูนย์เป็นorg-modeรายการที่มีหมายเลขหรือไม่ การจัดแนวข้อความในรายการที่มีหมายเลขเริ่มที่จะดูไม่เป็นที่พอใจเมื่อตัวเลขเข้าสู่ตัวเลขสองหลัก: * A numbered list 1. Item 1 2. Item 2 3. Item 3 4. Item 4 5. Item 5 6. Item 6 7. Item 7 8. Item 8 9. Item 9 10. Item 10 # ah, my eyes! org-modeคู่มือรายการธรรมดากล่าวว่า: รายการที่อยู่ในรายการเดียวกันจะต้องมีการเยื้องในบรรทัดแรก โดยเฉพาะอย่างยิ่งหากรายการที่สั่งซื้อมาถึงหมายเลข '10 ' จะต้องเขียนตัวเลข 2 หลักชิดชิดกับตัวเลขอื่น ๆ ในรายการ …
13 org-mode 

1
เป็นไปได้หรือไม่ที่จะใช้ทั้งสภาพแวดล้อมตารางคณิตศาสตร์ในองค์กร
ฉันมีorg-modeตารางที่ต้องมีข้อความคณิตศาสตร์ในแต่ละเซลล์ การห่อทุกเซลล์ด้วย$รูปลักษณ์ที่ดูน่าเกลียดและใช้พื้นที่มากกว่าที่ควรจะเป็น มีวิธีใดบ้างที่จะวางทั้งตารางในสภาพแวดล้อมทางคณิตศาสตร์ (LaTeX) เพื่อให้ข้อความทั้งหมดในตารางถูกตีความว่าเป็นสูตร

1
มาโครที่มี defcustom ทำให้เกิดข้อผิดพลาด“ ค่าของสัญลักษณ์ในฐานะตัวแปรถือเป็นโมฆะ” เมื่อรวบรวมไบต์
ในสองแพคเกจของฉันฉันมีแมโครที่ร่างกายขึ้นอยู่กับตัวแปรที่กำหนดในdefcustomรูปแบบ เมื่อติดตั้งแพ็คเกจจาก Melpa การรวบรวมไบต์จะสิ้นสุดด้วย: ข้อผิดพลาด: ค่าของสัญลักษณ์ในฐานะตัวแปรถือเป็นโมฆะ: my-defcustom-variable จากนั้นคอมไพล์ไฟล์ด้วยตนเองโดยการเปิดไฟล์ในบัฟเฟอร์ทำงาน ฉันลองใช้autoloadคุกกี้ แต่ยังคงมีพฤติกรรมเหมือนเดิม ฉันพลาดสิ่งสำคัญที่นี่

2
เขียนคีย์ใน Emacs: <Multi_key> ไม่ได้ถูกกำหนด
ฉันตั้งค่าAlt Grคีย์บนแป้นพิมพ์ของฉันเป็นคีย์เขียนในระบบของฉัน (Ubuntu 14.04) เพื่อพิมพ์ตัวอักษรเช่นéóèàùçüและอื่น ๆ แต่เมื่อฉันใช้ Emacs และพยายามกดAlt Grปุ่มฉันมีข้อความบอกว่า: &lt;Multi_key&gt; is undefines ฉันจะทำให้มันทำงานได้ไหม ขอบคุณ ป.ล. เนื่องจากฉันมีชื่อเสียงไม่มากพอฉันไม่สามารถติดแท็กโพสต์นี้ด้วยแท็กที่มีความหมายมากกว่านี้ ดังนั้นโปรดถ้าคุณต้องการแนะนำแท็กคุณยินดีต้อนรับ

1
เมื่อสลับบัฟเฟอร์ป้องกัน emacs จากการสลับเฟรมโดยอัตโนมัติ
เมื่อฉันสลับบัฟเฟอร์ emacs จะสลับไปยังเฟรมที่มีอยู่หากบัฟเฟอร์เปิดอยู่แล้ว ฉันพบวิธีการป้องกันเมื่อสลับกับ ido โดยใช้: (setq ido-default-buffer-method 'selected-window) แต่ก็ยังไม่เพียงพอ: สำหรับตัวอย่างถ้ามีข้อผิดพลาดเสียงกระเพื่อม emacs จะเปลี่ยนเป็นบัฟเฟอร์ * Backtrace * โดยอัตโนมัติและจะเปลี่ยนเฟรมหากเปิดอยู่ มีวิธีการป้องกัน emacs อย่างสมบูรณ์จากการเปลี่ยนเป็นเฟรมที่มีอยู่หรือไม่?

2
ข้อผิดพลาด“ ไม่สามารถตั้งค่ากลุ่มกระบวนการเทอร์มินัล” เมื่อเรียกใช้สคริปต์ทุบตี
ฉันมีโค้ดสองบรรทัดต่อไปนี้ในไฟล์ init.el ของฉัน: (setq shell-file-name "bash") (setq shell-command-switch "-ic") ฉันพยายามเรียกใช้สคริปต์ต่อไปนี้เพื่อรับรายการไฟล์เรียกใช้งานโดยใช้เชลล์สคริปต์ dmenu_path (defun dmenu-path-out () (shell-command-to-string "dmenu_path")) ฉันเห็นข้อผิดพลาดต่อไปนี้: bash: cannot set terminal process group (-1): Inappropriate ioctl for device bash: no job control in this shell [ 0ad ... ฉันจะป้องกัน bash ไม่ให้ส่งกลับข้อผิดพลาดนั้นเมื่อใช้งานได้shell-commandอย่างไร

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