Emacs

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

2
`ไวยากรณ์ -ppss 'เหมาะสมกับภาษาใด
ฉันได้รับการตรวจสอบวิธีการตรวจสอบว่าจุดอยู่ในความคิดเห็นโดยดูว่าบัฟเฟอร์ปัจจุบันเป็นแบบอักษร Smartparens กำหนดซึ่งอาศัยsp-point-in-comment syntax-ppssอย่างไรก็ตามดูเหมือนว่าsyntax-ppssและparse-partial-sexpสามารถใช้สำหรับภาษาใดก็ได้แม้ว่าพวกเขาจะไม่ใช้ s-expressions ตัวอย่างเช่น Python นี้: x = 1 # I'm a comment y = 2 วางจุดภายในความคิดเห็นและประเมินผลการ(if (nth 4 (syntax-ppss)) 'comment 'not-comment)ทำงานอย่างถูกต้อง ใช้syntax-ppssงานได้กับโหมดการเขียนโปรแกรมใด ๆ หรือไม่? ทำไมเอกสารถึงพูดถึง s-expressions

7
ฉันจะฝึกการค้นหาและแทนที่ด้วยนิพจน์ทั่วไปแบบโต้ตอบใน Emacs ได้อย่างไร
การค้นหาและแทนที่ด้วยการใช้นิพจน์ทั่วไปนั้นเป็นเครื่องมือที่ทรงพลังสำหรับผู้ใช้ Emacs ที่สามารถทำการกระทำเหล่านี้ได้เป็นประจำ อย่างไรก็ตามในฐานะผู้เริ่มต้น Emacs (และ / หรือการเขียนโปรแกรม) นิพจน์ทั่วไปจำเป็นต้องเรียนรู้และฝึกฝน ฉันสามารถเรียนรู้และฝึกอบรมนิพจน์ทั่วไปแบบโต้ตอบใน Emacs ได้เช่นเดียวกับบทช่วยสอนของ Emacs ในตัวหรือไม่ หากไม่มีคำแนะนำอื่น ๆ ในการใช้ Emacs เพื่อฝึกฝนการใช้นิพจน์ทั่วไปสำหรับการค้นหาและการแทนที่คืออะไร

1
จะตรวจสอบได้อย่างไรว่าอยู่ในสภาพแวดล้อมคณิตศาสตร์ LaTeX?
ถาม:มีวิธีในการตรวจสอบว่าจุดอยู่ในสภาพแวดล้อมทางคณิตศาสตร์ของ LaTeX หรือไม่ วิธีการหนึ่งที่จะตรวจสอบว่าจุดที่เป็นหรือไม่ได้อยู่ในสภาพแวดล้อมทางคณิตศาสตร์น้ำยางไม่ว่าจะเป็นคดีแบบอินไลน์โดย$...$หรือสภาพแวดล้อมที่ชื่อ ( equation, displaymathฯลฯ )?
12 latex  auctex 

2
แพ็คเกจในตัวที่มีซอร์สโค้ดที่ดีคืออะไร [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันกำลังพยายามทำความคุ้นเคยกับ Emacs Lisp ไวยากรณ์ของโครงสร้างข้อมูลเป็นต้นดังนั้นฉันจึงสงสัยว่าแพคเกจในตัวที่มีแหล่งที่มาจะช่วยให้ฉันเข้าใจวิธีการใช้ภาษาและเรียนรู้สำนวนได้อย่างไร

1
แบบอะซิงโครนัสรอผลลัพธ์จากกระบวนการ comint
ก่อนอื่นข้อจำกัดความรับผิดชอบ ฉันค้นคว้ามาหลายครั้งแล้วและฉันค่อนข้างมั่นใจว่าฉันได้พบคำตอบแล้วไม่ทางใดก็ทางหนึ่ง แต่ฉันก็ไม่เข้าใจ ปัญหาของฉันคือต่อไปนี้: ฉันมีกระบวนการทำงานผ่าน comint ฉันต้องการส่งบรรทัดอินพุตจับเอาต์พุตและดูเมื่อมันจบ (เมื่อบรรทัดสุดท้ายของเอาต์พุตตรงกับ regexp สำหรับพรอมต์) เมื่อกระบวนการส่งเอาต์พุตเสร็จสิ้นแล้วเท่านั้นฉันต้องการส่งอินพุตอีกบรรทัดหนึ่ง (ตัวอย่าง) สำหรับพื้นหลังเล็กน้อยให้คิดว่าเป็นโหมดหลักที่ใช้การโต้ตอบกับโปรแกรมซึ่งอาจส่งคืนเอาต์พุตจำนวนเท่าใดก็ได้ในเวลานานโดยพลการ นี่ไม่ควรเป็นสถานการณ์ที่ผิดปกติใช่มั้ย โอเคบางทีส่วนที่ฉันต้องรอระหว่าง อินพุตนั้นผิดปกติ แต่ก็มีข้อดีเล็กน้อยในการส่งอินพุตโดยรวม: บัฟเฟอร์เอาต์พุตถูกจัดรูปแบบเป็นอย่างดี: อินพุตเอาต์พุตอินพุตเอาต์พุต ... ที่สำคัญกว่านั้นเมื่อส่งข้อความจำนวนมากไปยังกระบวนการข้อความจะถูกตัดเป็นชิ้น ๆ และชิ้นส่วนจะถูกวางกลับโดยกระบวนการ จุดตัดเป็นสิ่งที่ไม่แน่นอนและบางครั้งสิ่งนี้ทำให้อินพุตไม่ถูกต้อง (กระบวนการของฉันจะไม่วางกลับอย่างถูกต้องเช่นการป้อนข้อมูลที่อยู่ตรงกลางของตัวระบุ) อย่างไรก็ตามผิดปกติหรือไม่ปรากฏว่ามีความซับซ้อน ตอนนี้ฉันกำลังใช้บางสิ่งบางอย่างตามแนวของ (defun mymode--wait-for-output () (let ((buffer (mymode-get-buffer))) (with-current-buffer buffer (goto-char (point-max)) (forward-line 0) (while (not (mymode-looking-at-prompt)) (accept-process-output nil 0.001) (redisplay) (goto-char (point-max)) (forward-line 0)) …

2
จัดแนวสมการและตารางที่มีหลายแถวในโหมดลาเท็กซ์
สมมติว่าฉันกำลังแก้ไขลาเท็กซ์ในโหมดลาเท็กซ์ของ Auctex และฉันมีสมการต่อไปนี้ นี้จะเยื้องเพียงกับ indent-region \begin{align} \phi & = a + b + c + d \\ & = a + b + c + d + e \end{align} การจัดตำแหน่งดังกล่าวข้างต้นเป็นสิ่งที่ผมได้รับถ้าฉันเลือกทุกอย่างและตีTAB, ที่อยู่, indent-regionถ้าฉันเพียงแค่ใช้ สิ่งที่ฉันต้องการจะได้รับมีดังต่อไปนี้: สังเกตวิธีการ+ c + dจัดแนวกับข้อความหลัง & นี้จะทำให้ความรู้สึกมากที่สุดที่จะเป็น+ c + dเป็นส่วนหนึ่งของเดียวกัน "คอลัมน์" = a + bเป็น \begin{align} \phi & …
12 latex  auctex  align 

1
หลังจากฉันอัปเดต Emacs 25.1 เป็น 26.1 โหมด org ไม่ทำงานอีกต่อไป
ฉันเป็นอะไรก็ได้นอกจากเป็นผู้เชี่ยวชาญของ Emacs แต่ฉันใช้ Emacs org-modeค่อนข้างบ่อย ฉันกำหนดค่า Emacs เพื่อให้สามารถจดจำ.orgไฟล์ได้ หลังจากฉันอัปเดตเป็นเวอร์ชัน 26.1 Emacs ไม่เพียงจดจำ.orgไฟล์ได้อีกต่อไป: File mode specification error: (file missing Cannot open load file No such file or directory ob-sh) org-modeแต่ไม่สามารถแม้แต่จะเปลี่ยนไป M-x org-modeให้: Cannot open load file No such file or directory ob-sh ฉันไม่ได้ย้าย.emacsไฟล์หรือ.emacs.dโฟลเดอร์ ความคิดใด ๆ
12 org-mode  emacs26 

2
emacs มีตัวเลือกในการแสดงการตั้งค่าการสร้างหรือไม่?
emacs มีตัวเลือกหรือคำสั่งภายในบางอย่างที่แสดงการตั้งค่าเวลาบิลด์และคุณสมบัติใด ๆ ที่รองรับ? ตัวอย่างที่ดีคือnginx -Vคำสั่งที่แสดงรายการ./configureตัวเลือกที่คอมไพล์ด้วย
12 config  build 

1
ความแตกต่างระหว่าง sh และ shell สำหรับ org-babel คืออะไร
ฉันกำลังทดลองกับการหาข้อมูลจากโหมดองค์กรลงในสคริปต์เชลล์ของฉันและฉันได้พบกับความประหลาด: #+tblname: simple-table | 1 | | 2 | | 3 | | 4 | | 5 | #+name: work-with-simple-list-shell #+begin_src shell :var tbl=simple-table echo "$tbl" #+end_src #+RESULTS: work-with-simple-list-shell : 1 #+name: work-with-simple-list-sh #+begin_src sh :var tbl=simple-table echo "$tbl" #+end_src #+RESULTS: work-with-simple-list-sh | 1 | | 2 | | 3 …

2
แทนที่สตริงที่กำหนดเพิ่มขึ้น
ให้เราบอกว่าฉันมีข้อความเช่นด้านล่าง: AC (NN) AC (NN) AC (NN) AC (NN) AC (NN) AC (NN) AC (NN) AC (NN) AC (NN) AC (NN) AC (NN) ตอนนี้ฉันต้องการแทนที่nnด้วยตัวเลขอย่างนั้น AC (0) AC (1) AC (2) เอซี (3) AC (4) AC (5) AC (6) AC (7) AC (8) AC (9) เอซี (10) ฉันเคยM-x replace-regexp nn RET …

2
Magit - ฉันจะชำระเงินที่สาขาระยะไกลในพื้นที่โดยไม่ต้องพิมพ์ชื่อสาขาทั้งหมดได้อย่างไร
remote-branch-long-nameฉันมีสาขาที่ห่างไกล เมื่อฉันเช็คเอาต์ด้วยหางเสือเสร็จฉันสามารถพิมพ์remote-branchและorigin/remote-branch-long-nameจะปรากฏขึ้นเป็นตัวเลือก ปัญหาคือการเช็คเอาต์สาขานี้ในพื้นที่จริง ๆ แล้วฉันไม่สามารถเปลี่ยนเป็นสาขานั้นได้ฉันต้องเปลี่ยนไปremote-branch-long-name (without the origin/ prefix)เนื่องจาก helm ไม่ได้ระบุว่าเป็นตัวเลือกที่สมบูรณ์ฉันต้องพิมพ์ชื่อสาขาทั้งหมดด้วยตนเอง มีฟังก์ชั่นอื่นที่ฉันควรใช้สำหรับกรณีการใช้งานนี้หรือฉันต้องแฮ็คฟังก์ชั่นร่วมกันหรือไม่?
12 magit 

3
ฉันจะลบคำแนะนำที่ไม่มีชื่อออกได้อย่างไร
ฉันสนุกกับการเพิ่มคำแนะนำลงในฟังก์ชั่น: (advice-add 'executable-find :around (lambda (f &rest args) (apply g args))) ;;; ^ อุ๊ยพิมพ์ผิด แก้ไขและประเมินโค้ดข้างต้นอีกครั้ง แต่ตอนนี้ฉันมีทั้งคำแนะนำ "แก้ไข" และ "แตก" รอบฟังก์ชันนั้น ฉันจะกำจัดสิ่งเหล่านี้ได้อย่างไร ระบุว่าadvice-removeต้องการฟังก์ชั่นวัตถุหรือคำแนะนำรอบ ๆ (เห็นได้ชัดว่าฉันสามารถออกจากและรีสตาร์ท แต่มีวิธีอื่นใช่หรือไม่)
12 advice 

1
Magit - เลิกทำการกระทำล่าสุด - การจัดการประวัติ
คำถาม StackOverflowนี้มีทางออก / แนวทางที่ดีที่สุดในการเลิกทำพันธะสุดท้าย ฉันเริ่มใช้ Magit เมื่อสองสามสัปดาห์ก่อนและหลังจากดูเอกสารทั้งหมดแล้วฉันก็ยังไม่มีวิธีที่ชัดเจนที่สุดในการยกเลิกการเปลี่ยนแปลงที่ตั้งใจกระทำ ตัวอย่างเช่น: สำหรับการเลิกทำและทำซ้ำการกระทำครั้งสุดท้ายที่เราสามารถใช้: $ git commit -m "Something terribly misguided" $ git reset HEAD~ << edit files as necessary >> $ git add ... $ git commit -c ORIG_HEAD # To keep the same commit message สิ่งที่ควรเป็นขั้นตอนการทำงานที่ดีที่สุดในการทำซ้ำขั้นตอนนี้ใช้Magit ?
12 magit  git 

1
การสนับสนุนสำหรับ regex มองไปข้างหน้าและข้างหน้า?
ฉันต้องทำการแทนที่แบบสอบถาม regex เช่นนั้น fooในfoo barคือจับคู่ แต่fooในfoo bazไม่ ปกติผมจะใช้ข้างหน้าดู regex foo(?=bar)เช่น อย่างไรก็ตามดูเหมือนว่า Emacs จะทำเช่นนี้ไม่ได้? ดูเหมือนว่าจะมีความสามารถแต่โหมดชั่วร้ายใน spacemacs ไม่สามารถทำได้

3
เป็นไปได้ที่จะไม่ใช้เลิกทำต้นไม้ในโหมดชั่วร้าย?
ดังนั้นทุกครั้งที่ผมใช้เป็นข้อบกพร่องในการยกเลิกต้นไม้ที่ฉันไม่สามารถทำซ้ำมีดังต่อไปนี้ปัญหาที่รู้จักกัน , รายงานอื่นและReddit ด้าย primitive-undo: Unrecognized entry in undo list undo-tree-canary สิ่งนี้แย่มากและอาจทำให้งานเสียไปหากคุณไม่ได้บันทึกไฟล์เวอร์ชันใหม่ล่าสุด เนื่องจากฉันไม่เคยใช้ฟังก์ชั่นการเลิกทำกิ่งก้านสาขามันเป็นไปได้ไหมที่จะใช้ emacs linear undo กับโหมดความชั่วร้าย? หมายเหตุ: ฉันได้ลองตั้งค่า(global-undo-tree-mode -1)โดยตรงหลังจาก(evil-mode 1)ที่ปิดใช้งานการเลิกทรี แต่การทำซ้ำ (Ctrl-R) ไม่ทำงานหลังจากทำสิ่งนี้

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