Emacs

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

1
การรวม magit กับ undo-tree เพื่อให้ง่ายต่อการนำทางประวัติศาสตร์
ฉันรักundo-tree(ภาพหน้าจอด้านล่าง) มันมีวิธีที่ง่ายสำหรับการนำทางผ่านรุ่นที่แตกต่างของไฟล์ (หน้าต่างด้านบน) โดยให้ย้ายผู้ใช้รอบ ๆ ต้นไม้ประวัติศาสตร์ของไฟล์ในหน้าต่างแยกต่างหาก (หน้าต่างด้านล่าง) ด้วยปุ่มง่ายเช่นn, pและC-bและC-fสวิทช์ข้ามลูกหลานของเดียวกัน ผู้ปกครอง สิ่งที่สะดุดตาที่สุดคือundo-treeอัพเดตบัฟเฟอร์ที่เก็บไฟล์ด้วยเวอร์ชันที่สอดคล้องตามการเลือกในมุมมองแบบต้นไม้โดยอัตโนมัติ แน่นอนว่าmagitเป็นปรากฏการณ์สำหรับคอมไพล์และมันก็น่าทึ่งถ้ามันมีความสามารถที่คล้ายกันคือให้ผู้ใช้สำรวจประวัติคอมไพล์ของไฟล์แบบโต้ตอบในขณะที่อัพเดทบัฟเฟอร์ที่ถือไฟล์โดยอัตโนมัติ วันนี้เป็นไปได้magitหรือไม่

2
วิธีเปลี่ยนหัวเรื่องจาก emacs @ host เป็นชื่อไฟล์
ฉันใช้ Emacs 24.5.1 ใน OpenSUSE Tumbleweed กับ Gnome 3.16 และชื่อของหน้าต่าง GTK กับ Emacs นั้นจะเป็นชื่อโฮสต์ @ emacs เสมอ ฉันจะเปลี่ยนเป็นชื่อไฟล์ปัจจุบันที่ฉันแก้ไขได้อย่างไร
16 frames  gtk3 

2
ฉันจะเช็คเอาท์ไฟล์จากการกระทำอื่นใน Magit ได้อย่างไร
ฉันมีไฟล์foo.txtในสาขาAและฉันต้องการเช็คเอาท์foo.txtจาก branch Bไปยังดัชนี บนบรรทัดคำสั่งฉันจะทำสิ่งนี้: $ git checkout B -- foo.txt ฉันต้องการที่จะสามารถทำสิ่งนี้ใน magit โดยการเข้าสู่ระบบการค้นหากระทำที่ฉันสนใจ (เช่นl o B), การค้นหาfoo.txtและใช้คำสั่งบางอย่าง แต่ฉันไม่สามารถหาวิธีที่จะทำ
16 magit 

1
ฉันจะดีบัก emacs crash ได้อย่างไร
ฉันกำลังแก้จุดบกพร่องทำไม emacs เกิดปัญหาเมื่อใช้ฟังก์ชั่นจากแพคเกจ1 M-x report-emacs-bugจุดมุ่งหมายของการดำเนินการแก้ปัญหานี้คือการได้รับข้อมูลที่เป็นประโยชน์ในการส่งใช้ เพื่อรับความช่วยเหลือเกี่ยวกับวิธีการแก้ไขข้อบกพร่อง emacs ฉันได้ดูคู่มือ Emacs แล้ว - คู่มือการทำงานล้มเหลวและคู่มือ Emacs - หลังจากการขัดข้องแต่พวกเขาไม่ได้ช่วย หลังจากที่ผิดพลาดด้วยตนเองหมายถึงemacs-buffer.gdbแต่ผมไม่มีความคิดวิธีการใช้งาน ในขณะที่ขอความช่วยเหลือจาก google ฉันเจอคำถามemacs.SE นี้และฉันจะคอมไพล์ emacs ใหม่โดยใช้-ggdb3แฟล็ก ฉันไม่เคยมีประสบการณ์การใช้มาก่อนgdbดังนั้นฉันจึงลองใช้emacs-buffer.gbdไฟล์นี้ไม่สำเร็จ นี่คือสิ่งที่ฉันพยายาม: gdb -x /path/to/emacs-buffer.gdb gdb -> file /path/to/emacs-buffer.gdb gdb -> source /path/to/emacs-buffer.gdb source /path/to/emacs-buffer.gdb จากบันทึกด้านข้าง emacs ที่คอมไพล์ด้วย-ggdb3แฟล็กใช้เวลาโหลดนานกว่า 10 วินาที; ก่อนหน้านี้คือ 5-6 วินาทีขณะนี้ประมาณ 16-17 วินาที ฉันรู้ว่าวินาทีที่แน่นอนเพราะรหัสที่คำนวณว่าใน init ของฉัน …
16 debugging  gdb 


4
ประโยชน์ของการแลกเปลี่ยนจุดและเครื่องหมายคืออะไร?
exchange-point-and-markคำสั่งที่ถูกผูกไว้C-x C-xแต่ฉันไม่สามารถคิดกรณีการใช้งานใด ๆ ที่จะทำให้มันสมควรเช่นที่โดดเด่นที่มีผลผูกพัน ฉันจะใช้exchange-point-and-markเพื่อปรับปรุงเทคนิคการแก้ไขของฉันได้อย่างไร

3
Elisp regexps ^ และ $ vs `และ '
คู่มืออธิบายตัวละคร regexp พิเศษและ^ $เช่นเดียวกับในภาษาถิ่นปกติส่วนใหญ่ฉันรู้ว่าพวกเขาดูเหมือนจะตรงกับจุดเริ่มต้นหรือจุดสิ้นสุดของสตริง อย่างไรก็ตามฉันยังค้นพบว่ามี`และ'ตัวละครที่ใช้ได้ จากคำอธิบายที่พบที่นี่พวกเขาดูเหมือนจะตรงกับจุดเริ่มต้นหรือจุดสิ้นสุดของสตริง ใครช่วยอธิบายความแตกต่างระหว่างตัวละครพิเศษเหล่านี้พร้อมตัวอย่างและคำแนะนำในการใช้เมื่อไหร่? เมื่อฉันดูค่าของauto-mode-alistพวกเขาดูเหมือนจะใช้แทนกันเพื่อให้ตรงกับจุดสิ้นสุดของสตริง: (... ("\\.scss\\'" . scss-mode) ("\\.ya?ml$" . yaml-mode) ...)

3
จะรับหมายเลของค์ประกอบในรายการได้อย่างไร
ถาม:ฉันจะรับหมายเลของค์ประกอบในรายการได้อย่างไร nthรับหมายเลของค์ประกอบnจากรายการ: (nth 2 '(a b c d)) ; => c ฉันต้องการย้อนกลับ: รับหมายเลของค์ประกอบที่ระบุองค์ประกอบ: (some-function 'c '(a b c d)) ; => 2 ฉันอาจจะพลาด แต่ฟังก์ชั่นดังกล่าวมีอยู่หรือไม่? คนเราจะทำสิ่งนี้ได้อย่างไร
16 elisp 

2
คุณสามารถเปิดใช้งาน / (นำมาด้านหน้า) emacs โดยใช้ elisp ดั้งเดิมได้หรือไม่? (เช่นเมื่อทำงานในโปรแกรมอื่น)
ฉันต้องการบังคับให้ emacs เปิดใช้งานถูกซื้อให้เป็นแบบ frond และโฟกัส 'ขโมย' ในบางสถานการณ์ เช่นเมื่อฉันเรียนจบ Pomodoro หรือในระหว่างการแจ้งเตือนการนัดหมายที่สำคัญ ตอนนี้ฉันกำลังมองหาวิธี 'ดั้งเดิม' ที่จะทำเช่นนั้นเพียงเพื่อลดการพึ่งพาจากภายนอก (เฉพาะลีนุกซ์ก็โอเคสำหรับฉันข้ามแพลตฟอร์มน่าจะดีกว่า) เทคนิคนี้เป็นไปได้จาก emacs ภายในหรือไม่ [แก้] วิธีแก้ไข: หากใช้ GUI สิ่งนี้จะทำงานได้ดี: (x-focus-frame nil) [ด้วยเหตุผลทางประวัติศาสตร์ ... ] ฉันได้ลอง: การมองเห็นเฟรม (ไม่ทำงาน) (make-frame-visible) และนอกจากนี้ยังมี: (make-frame-invisible) (make-frame-visible) แต่สิ่งเหล่านี้ดูเหมือนจะใช้ได้เฉพาะเมื่อ Emacs เปิดใช้งานแล้ว การเพิ่มเฟรม (ไม่ทำงาน) กรอบด้านล่างดูเหมือนจะซ่อน emacs จริง (lower-frame) แต่การเพิ่มเฟรมจากตัวจับเวลาไม่ได้ คือไม่มีอะไรเกิดขึ้น (raise-frame) ดูเหมือนว่า 'เปิดใช้งาน emacs' หายไปก่อนที่จะเพิ่ม …
16 frames 

2
โหมด org พร้อมตัวติดตามข้อผิดพลาด jira
ฉันกระตือรือร้นในการใช้ Jira org-modeกับ org-Jira โหมดดูเหมือนจะเป็นผู้สมัครที่มีศักยภาพ แต่ฉันจะใช้HTTP RESTในสถานการณ์มากที่สุดและฉันไม่ต้องการที่จะทำลายหัวของฉันกับโปรโตคอลเพื่อประโยชน์ของ soap มี jira plugin ตัวอื่นที่พูดผ่าน โพรโทคอลหรือไม่?org-jira-mode rest
16 org-mode 

3
วิธีสร้าง: คำหลัก?
ถาม: มีวิธีสร้างและใช้:keywordsอย่างไร? พิจารณาความพยายาม (ไร้เดียงสาที่เห็นได้ชัด) ในการเข้าถึงของเล่น alist ต่อไปนี้: (setf alist '((:key-1 "Key no. 1") (:key-2 "Key no. 2"))) (assq :key-1 alist) ; => (:key-1 "Key no. 1") (assq (make-symbol ":key-1") alist) ; => nil คีย์แรกทำงานตามที่คาดไว้ แต่คีย์ที่สองไม่ทำงาน ตราบเท่าที่ไม่มีmake-keywordฟังก์ชั่นที่ชัดเจนใครจะสร้างและใช้คำหลักได้อย่างไร แรงจูงใจดั้งเดิม: ฉันต้องแปลงสตริงเป็นคีย์ค้นหาที่เป็นสัญลักษณ์ซึ่งฉันสามารถใช้งานputคุณสมบัติได้ ในกระบวนการกำหนดคำถามนี้ฉันได้รับอย่างน้อยส่วนหนึ่งของคำตอบซึ่งฉันโพสต์แยกต่างหาก ฉันหวังว่าจิตใจที่แจ่มใสกว่าที่ฉันจะปรับปรุงได้
16 elisp  symbols 

3
บอกเครื่องหมายขีดกลาง (-) เครื่องหมายขีดกลาง (-) และเครื่องหมายบอกระยะห่าง (-)
เส้นประ (-), เส้นประ (-) และ emdash (-) นั้นแตกต่างกัน แต่ยากที่จะแยกออกจากกัน ทำให้เกิดปัญหาเช่นเมื่อเขียนโปรแกรม มีวิธีที่จะบอกพวกเขาใน emacs ได้ง่ายกว่ากันไหม? ขอบคุณ

3
วิธีเริ่ม ediff ไฟล์ที่มีเครื่องหมายความขัดแย้ง git?
หลังจากพยายามรวมคอมไพล์ใน commandline ตอนนี้ไฟล์ของฉันมีตัวทำเครื่องหมายความขัดแย้งมาตรฐานซึ่ง emacs ได้ทำการโหลดซ้ำ (ย้อนกลับ?) ในบัฟเฟอร์ ฉันจะเริ่มต้นโหมดการรวมบางอย่างเพื่อแก้ไขข้อขัดแย้งได้อย่างไร ฉันสามารถรับบัฟเฟอร์แบบแยกส่วนที่แสดงไฟล์เวอร์ชันซ้าย / ขวา / ผสานได้หรือไม่เมื่อฉัน ediff-files (emacs-prelude v24.4 บน Mac)
16 git  ediff  prelude 

2
วิธีการเช็คเอาท์ของเรา / ไฟล์ของพวกเขาใน magit?
สมมติว่าฉันมีความขัดแย้งที่ผสาน ฉันเห็นไฟล์ที่ขัดแย้งกันดังนี้: Unstaged changes: Unmerged Foo/bar/wibble/plop/elbow.txt ฉันสามารถกดแท็บที่นี่เพื่อเปิดการเปลี่ยนแปลงและอาจข้ามไปยังจุดภายในไฟล์เพื่อแก้ไขด้วยมือ แต่ถ้าเป็นไฟล์ขนาดใหญ่ที่มีข้อขัดแย้งมากมายที่ต้องใช้เวลา ฉันจะขอ git ผ่านทาง magit เพื่อชำระเงินไฟล์ของเราหรือของพวกเขาเพื่อแก้ไขข้อขัดแย้งได้อย่างไร? ฉันสามารถคัดลอกเส้นทางแล้วใช้Shift-:เพื่อป้อนคำสั่ง git ที่กำหนดเอง แต่ดูเหมือนว่าจะต้องมีแป้นพิมพ์ลัดสำหรับสิ่งนี้ ฉันไม่เห็นสิ่งใดที่ชัดเจนในเมนู magit หรือ?ป๊อปอัป
16 magit 

3
การเปลี่ยนไดเร็กทอรีการรวบรวมโหมดปัจจุบันโดยอัตโนมัติ?
ปัจจุบันคำสั่งรวบรวมของฉันมีดังนี้: cd ~/somedir && ./somescript.sh วิธีนี้จะป้องกัน emacs จากการค้นหาไฟล์ที่เกิดข้อผิดพลาด (และเปิดไฟล์) แน่นอนฉันสามารถเรียกใช้M-x cdด้วยตนเอง แต่มีวิธีบอกบัฟเฟอร์ให้เปลี่ยนไดเรกทอรีปัจจุบันโดยทางโปรแกรมหรือไม่

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