Emacs

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


3
เป็นไปได้ไหมที่จะสร้าง yasnippets เพื่อขยายตัวอย่างภายในส่วน babel ในโหมดองค์กรในโหมดที่เหมาะสม?
ตัวอย่างเช่นฉันมีโหมดองค์กรที่มีดังต่อไปนี้ #+BEGIN_SRC emacs-lisp #+END_SRC เป็นไปได้หรือไม่ที่จะกำหนดค่า yasnippets ในลักษณะนี้เพื่อให้ตัวอย่างโค้ด emacs-lisp-mode สามารถขยายได้ภายในบล็อกนั้น แต่ไม่ใช่ภายนอก?

1
แสดงบางอย่างในบรรทัดโหมดที่ใช้งานแทนทุกบรรทัดโหมด
ฉันตั้งค่าตัวบ่งชี้ org-timer ในบรรทัดโหมดด้วยสิ่งนี้ (setq-default mode-line-format (quote ( ;; org-timer (:eval (unless (not org-timer-countdown-timer) (propertize (let* ((rtime (decode-time (time-subtract (timer--time org-timer-countdown-timer) (current-time)))) (rmins (nth 1 rtime)) (rsecs (nth 0 rtime))) (format "🕔 %d:%d" rmins rsecs)) 'face '(:foreground "cyan" :weight bold) 'help-echo "org-timer"))) ))) ฉันต้องการให้ตัวบ่งชี้ org-timer นี้แสดงในบรรทัดโหมดแอ็คทีฟเท่านั้นแทนที่จะเป็นโหมดโหมดทั้งหมด ทำอย่างไร?
10 mode-line 

1
มีมากกว่าหนึ่งบรรทัดในโหมดบรรทัดหรือไม่
ฉันต้องการให้ modeline แสดงข้อมูลทั้งหมดที่ไม่ได้อยู่ในบรรทัดเดียว แต่เป็นสอง - ตัวอย่างแรกสำหรับข้อมูลเคอร์เซอร์, บัฟเฟอร์, ไฟล์, git และ flycheck และในบรรทัดที่สอง - ข้อมูลโหมด (โหมดหลักและรอง) เป็นไปได้ไหม? ฉัน googled bindings.el และ emacs ซอร์สโค้ด C และไม่โชคดีที่พบว่าหมายเลขบรรทัดนี้สำหรับ modeline อาจเป็นไปได้ที่จะมีการเปลี่ยนแปลงใครสามารถช่วยได้บ้าง ขอบคุณ.
10 mode-line 

4
ฉันสามารถโหลดห้องสมุดใหม่และกำหนดค่า defvar ใหม่ได้หรือไม่
ฉันกำลังพัฒนาห้องสมุดและต้องการโหลดใหม่หลังจากแก้ไขโดยไม่ออกจาก Emacs (สมมติว่าเปิดอยู่load-path): (load-library "myname") เมื่อฉันทำสิ่งนี้ Emacs จะไม่รับการเปลี่ยนแปลงdefvarตัวแปรขาออก ฉันไม่ต้องการโทรeval-defun( C-M-x) ด้วยตนเองในแต่ละแบบฟอร์มระดับบนสุด ไม่M-x eval-bufferเคารพdefvar/ defcustom?
10 variables  defvar 

2
เน้นวันที่ที่จะมาถึงในโหมดองค์กร org
ฉันมีรายการในไฟล์ org ของฉันคล้ายกับ: * Birthdays :PROPERTIES: :CATEGORY: birthday :END: %%(org-anniversary 1981 1 2) Harry (%d) สิ่งที่ฉันต้องการคือให้สิ่งเหล่านี้ปรากฏในวาระการประชุม (พูด) 2 สัปดาห์ก่อนถึงกำหนดเช่นเดียวกับกำหนดเวลาทำงาน เป็นไปได้ไหม

5
วิธีง่ายๆในการสร้างบัฟเฟอร์ eww หลายรายการ
M-x ewwพรอมต์สำหรับ url หรือคำหลักและเปิด*eww*บัฟเฟอร์ใหม่ ในeww-mode, Gถูกผูกไว้ewwซึ่งแทนที่เนื้อหาของบัฟเฟอร์ eww เดียว ในการสร้างหลายบัฟเฟอร์สำหรับหน้าเว็บที่แตกต่างกันฉันใช้วิธีสร้างบัฟเฟอร์ใหม่ตั้งค่าeww-modeด้วยตนเองจากนั้นกดG(หรือM-x eww) เพื่อไปที่ URL ฉันสามารถเขียนฟังก์ชั่นที่ใช้งานได้ทั้งหมดสำหรับฉัน แต่ฉันประหลาดใจที่ฟังก์ชั่นนี้ไม่ได้มีมาให้ในตัว ฉันเพิ่งจะหายไปหรือไม่
10 buffers  eww 

2
โหมดองค์กร, การส่งออก, วิธีการ 'ขึ้นบรรทัดใหม่ในบรรทัดระหว่างย่อหน้า?
ฉันมีไฟล์โหมดองค์กรส่วนย่อยบางส่วนมีย่อหน้าใหญ่ เมื่อฉันส่งออกเป็น html ทั้งย่อหน้าจะแสดงเป็นบรรทัดเดียว ฉันเข้าใจว่าฉันต้องใส่ '\\' ทุกบรรทัดบิต PITA ประมาณ 4,000 บรรทัด มีวิธีใดบ้างที่อาจเป็นพารามิเตอร์ที่บังคับให้ขึ้นบรรทัดใหม่ไปยังแต่ละบรรทัดที่อยู่ระหว่างย่อหน้า? ขอบคุณ

2
เป็นไปได้ที่จะ "แยก" กระบวนการเด็กหรือไม่?
ผมใช้browse-url/ browse-url-firefoxการเปิดการเชื่อมโยงใน Firefox จากภายใน Emacs 24.5.1 ภายใต้ Linux (Fedora 23) ซึ่งในสาระสำคัญดำเนินการfirefoxปฏิบัติการที่มี URL start-processโดย หากมีการใช้งานอินสแตนซ์ของ Firefox อยู่แล้วนี่จะทำให้ URL ถูกเปิดในแท็บใหม่และยุติการfirefoxปฏิบัติการที่เกิดจาก Emacs แต่มิฉะนั้นอินสแตนซ์ Firefox ใหม่จะทำงานเป็นกระบวนการย่อยของ Emacs (สำหรับวัตถุประสงค์ในการทดสอบ สิ่งนี้เทียบเท่ากับM-! sleep 1h & RET) ถ้าฉันต้องการออกจาก Emacs มันจะถามฉันว่า "มีกระบวนการที่ใช้งานอยู่; ด้วยตัวเลือกเพื่อฆ่าอินสแตนซ์ Firefox หรือปล่อยให้ Emacs ทำงาน แต่ฉันอยากจะ "แยก" firefoxกระบวนการจากผู้ปกครอง Emacs เพื่อให้ฉันสามารถออกจาก Emacs ขณะที่ยังคงอินสแตนซ์ Firefox ที่ทำงานอยู่ เป็นไปได้หรือไม่ที่จะวางไข่กระบวนการจาก Emacs ที่ …
10 linux  process  exit 

2
วิธีเพิ่มการเน้นไวยากรณ์ที่ซับซ้อนในโหมดรองได้อย่างไร
ฉันต้องการไฮไลต์โค้ดด้วยใบหน้าต่างๆในโหมดรอง นี่คือภาพหน้าจอที่ใกล้เคียงกับสิ่งที่ฉันต้องการ: สิ่งหนึ่งที่ฉันหายไปจะมีตัวอักษรแสดงความคิดเห็นใน# font-lock-comment-faceแนวคิดคือมีความคิดเห็นที่ "เป็น" ของโครงร่างที่เน้นเป็นข้อความธรรมดาดังนั้นจึงง่ายต่อการอ่าน ในขณะที่มีความเห็นปกติกับใบหน้าที่โดดเด่นน้อยกว่าปกติของพวกเขา นี่คือรหัสที่ฉันใช้: (setq-local font-lock-defaults '(python-font-lock-keywords nil nil nil nil (font-lock-syntactic-face-function . lpy-font-lock-syntactic-face-function))) (defun lpy-font-lock-syntactic-face-function (state) "Return syntactic face given STATE. Returns 'defalt face for comments that belong to an outline." (cond ((nth 3 state) (if (python-info-docstring-p state) font-lock-doc-face font-lock-string-face)) ((save-excursion (while (and (> (point) …

1
เป็นไปได้หรือไม่ที่จะอ่านอินพุตของผู้ใช้จาก STDIN ขณะที่กำลังบล็อกซอร์สบล็อก?
เป็นไปได้ไหมที่จะอ่านอินพุตของผู้ใช้จาก STDIN ในขณะที่กำลังบล็อกซอร์สด้วยorg-babel-tangle? ผมตระหนักถึงเรื่องนี้: Org โหมดบาเบล - code อินเตอร์แอคทีประเมินบล็อก นั่นไม่ได้ช่วยแก้กรณีการใช้งานนี้โดยเฉพาะเนื่องจากมันยังไม่อนุญาตอินพุต STDIN ที่เหมาะสมจากเชลล์ แต่จำลองอินพุตที่ จำกัดภายใน Emacs เท่านั้น พื้นหลัง ฉันต้องการใช้ Babel ของ Org เพื่อเรียนรู้ภาษาการเขียนโปรแกรมใหม่ (Perl และ Bash) โดยใช้บทเรียนจากไฟล์ org หนึ่งไฟล์ ปัญหาคือบทเรียนจำนวนมากพึ่งพา STDIN ตัวอย่างเช่นหากมีการทำงานชิ้นอาหารอันโอชะ Perl ต่อไปนี้: #+BEGIN_SRC perl :tangle hello-name.pl :results output :export code use 5.010; use strict; use warnings; say "What is …

2
วิธีปรับสถานะงานขององค์กรโดยอัตโนมัติด้วยช่องทำเครื่องหมายย่อย
ฉันมีงานหลายอย่างในไฟล์ Org ของฉันซึ่งหนึ่งในนั้นมีรายการที่เริ่มต้นด้วยช่องทำเครื่องหมาย (แต่เฉพาะที่) พวกเขาทุกคนมีคุกกี้สถิติเมื่อสิ้นสุด ([n / m]) ฉันกำลังมองหาวิธีการปรับปรุงงานของผู้ปกครองโดยอัตโนมัติจากTODOไปDONEทุกครั้งของการทำเครื่องหมายในช่องทำเครื่องหมายเป็นทำได้เช่นกัน เอกสารกล่าวว่า: หากคุณต้องการให้รายการสิ่งที่ต้องทำเปลี่ยนเป็น DONE โดยอัตโนมัติเมื่อเด็ก ๆ เสร็จแล้วคุณสามารถใช้การตั้งค่าต่อไปนี้ [... ] ความเป็นไปได้อีกอย่างหนึ่งคือการใช้ช่องทำเครื่องหมายเพื่อระบุ (ลำดับชั้นของ) งานย่อยจำนวนมาก (ดูที่ช่องทำเครื่องหมาย) วิธีที่ฉันเข้าใจว่าส่วนสุดท้ายคือหากรายการเด็กเป็นช่องทำเครื่องหมายรัฐหลักควรได้รับการอัปเดตโดยอัตโนมัติแล้ว (ซึ่งไม่ใช่กรณี) ฉันกำลังคิดถึงอะไร แก้ไข: จากorg-after-todo-statistics-hookเอกสารของ (org.el): ตะขอที่เรียกว่าหลังจากคุกกี้สถิติสิ่งที่ต้องทำได้รับการปรับปรุง แต่ละฟังก์ชั่นถูกเรียกด้วยสองอาร์กิวเมนต์: จำนวนของรายการที่ไม่ได้ทำและจำนวนของรายการที่ทำ ซึ่งหมายความว่ารหัสที่เสนอจาก orgmode.org: (defun org-summary-todo (n-done n-not-done) "Switch entry to DONE when all subentries are done, to TODO otherwise." (let (org-log-done …
10 org-mode 

1
ฉันจะส่งออกไฟล์ ORG ไปยังไซต์ HTML แบบโต้ตอบได้อย่างไร
มีวิธีการส่งออกไฟล์. org เป็น html ที่รองรับการขยายและยุบชื่อหรือไม่ สิ่งที่ฉันต้องการคือการสามารถกดแป้นเช่น TAB และขยายและยุบโครงร่าง แต่บนไซต์ html Github wikis สนับสนุน orgmode แต่ดูเหมือนจะไม่อนุญาตให้มีการขยายและยุบชื่อ
10 org-mode  html 

2
สิ่งที่อาจเป็นกุญแจที่ไม่ได้ใช้งานบน Emacs ที่โดยทั่วไปสามารถใช้ในการผูกมาโครคีย์บอร์ดได้?
ผมอ่านที่ทางปกติคีย์ผูกไว้กับแมโครแป้นพิมพ์C-x C-k 0ไป9และจะAZ ตัวอย่างเช่นหลังจากที่เรากำหนดแมโครแป้นพิมพ์เราสามารถพิมพ์ C-x C-k bและ Emacs จะขอกุญแจเพื่อผูก และปุ่มที่สงวนไว้สำหรับจุดประสงค์นี้C-x C-k 0ไป9และจะAZ แต่มันเกี่ยวข้องกับการกดแป้นไม่กี่ครั้ง กุญแจอะไรที่ดีในการผูกสิ่งนี้กับ? ฉันพบว่าฉันสามารถผูกให้C-<return>หรือOption+ Enterบน Mac การทำงานของเครื่องเสมือน Ubuntu ใช้รุ่น Emacs GUI ดังนั้นจึงควรใช้งานได้ แต่เวอร์ชันเทอร์มินัลของ Emacs และ Emacs ดั้งเดิมบน Mac นั้นปฏิบัติต่อC-<return>หรือOption+ Enterเพียง<return>เพื่อจะไม่ทำงาน สิ่งที่อาจเป็นกุญแจที่ไม่ได้ใช้งานบน Emacs ที่โดยทั่วไปสามารถใช้ในการผูกมาโครคีย์บอร์ดได้? หรืออาจจะเป็นวิธีที่จะแสดงปุ่มง่ายๆทั้งหมดที่ไม่ได้ผูกไว้CtrlและMeta?

3
จะเขียนตัวห่อหุ้มฟังก์ชั่น“ pass-through” แบบโปร่งใสได้อย่างไร?
สิ่งที่ฉันหมายความโดย "โปร่งใส 'ผ่าน' ฟังก์ชั่นเสื้อคลุม" คือฟังก์ชั่นขอเรียกมันwrapperว่าผลตอบแทนที่เป็นผลมาจากการส่งผ่านอาร์กิวเมนต์ทุกฟังก์ชั่นอื่น ๆ wrappeeบางอย่างที่ขอเรียกว่า วิธีนี้ทำได้ใน Emacs Lisp หมายเหตุ: wrapperฟังก์ชั่นในอุดมคตินั้นไม่เชื่อเรื่องพระเจ้าเกี่ยวกับwrappeeลายเซ็นของฟังก์ชัน กล่าวคือไม่ทราบจำนวนตำแหน่งตำแหน่ง ฯลฯ ของwrappeeข้อโต้แย้ง มันเพิ่งผ่านการขัดแย้งทั้งหมดของมันไปwrappeeเช่นเดียวกับที่wrappeeได้รับการเรียกเดิม (ไม่จำเป็นต้องยุ่งกับ call stack เพื่อแทนที่ call to wrapperด้วย call to wrappee) ฉันโพสต์คำตอบบางส่วนสำหรับคำถามของฉัน: (defun wrapper (&rest args) (apply 'wrappee args)) นี้จะทำงานเฉพาะเมื่อwrappeeเป็นไม่โต้ตอบ เห็นได้ชัดว่าวิธีการที่ฟังก์ชั่นโต้ตอบได้รับข้อโต้แย้งของพวกเขาแสดงให้เห็นถึง "ช่องทาง" ที่แตกต่างจากสิ่งที่ครอบคลุมโดย(&rest args)คาถา สิ่งที่ฉันยังต้องการคือwrappeeคู่ที่เท่าเทียมกันของ(&rest args)ลายเซ็นสำหรับกรณีที่wrappeeมีฟังก์ชั่นแบบโต้ตอบ (คำถามนี้เกิดจากปัญหาที่อธิบายไว้ในคำถามก่อนหน้านี้ ) ในกรณีที่ต้องการคำชี้แจงเพิ่มเติมเกี่ยวกับสิ่งที่ฉันขอเป็นด้านล่างเป็นตัวอย่างสองประการแสดง Python และ JavaScript ที่เทียบเท่ากับสิ่งที่ฉันต้องการ ใน Python …
10 advice  arguments 

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