Emacs

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

1
TAB และ <tab> ต่างกันอย่างไร
ฉันกำลังอ่านเอกสารสำหรับโหมด Yasnippet เมื่อฉันมาที่ส่วนที่กำหนดปุ่มไก: ดูเหมือนว่าโหมดรอง Yasnippet จะกำหนดTABคีย์เพื่อให้ทำงานyas-expandโดยใช้: (define-key yas-minor-mode-map (kbd "&lt;tab&gt;") 'yas-expand) (define-key yas-minor-mode-map (kbd "TAB") 'yas-expand) ความแตกต่างระหว่าง&lt;tab&gt;และTABคืออะไร? (ฉันพยายาม google นี้ แต่ฉันไม่สามารถหาคำอธิบายที่ชัดเจน)

4
ฉันจะระบุชื่อไฟล์สำหรับการส่งออกโหมด org ใน Emacs ได้อย่างไร
ไฟล์ org ของฉันคือการตั้งชื่อREADME.orgและฉันต้องการที่จะส่งออกไปยัง Markdown READMEเป็นไฟล์ที่ชื่อว่า README.mdทุกครั้งที่ผมทำงานส่งออกก็เขียนไป นี่คือไฟล์ org ของฉัน: #+PROPERTY: EXPORT_FILE_NAME thing * Test export ฉันใช้EXPORT_FILE_NAMEคุณสมบัติตามลิงก์นี้: http://orgmode.org/manual/Export-settings.html#index-property_002c-EXPORT_005fFILE_005fNAME-1617แต่ดูเหมือนว่าจะไม่ทำอะไรเลย

2
มีความเป็นไปได้ไหมที่เปิดมุมมองหลายวาระพร้อมกันหรือไม่
ฉันมีมุมมองกำหนดการที่กำหนดเองซึ่งแสดงรายการที่ฉันทำเมื่อสัปดาห์ที่แล้วและรายการที่ต้องทำในสัปดาห์นี้ มุมมองนี้ขึ้นอยู่กับตัวกรองของรายการสิ่งที่ต้องทำ อย่างไรก็ตามจะเป็นการดีหากเห็นรายการที่กำหนดเวลาและกำหนดส่งในบัฟเฟอร์อื่น แน่นอนว่าฉันสามารถเปิดอินสแตนซ์ emacs อีกอันและเปิดวาระที่แตกต่างกันได้ แต่มีวิธีอื่นเพื่อให้ฉันสามารถตรวจสอบมุมมองวาระที่ต่างกันสองเฟรมในเฟรมเดียวกัน แต่ในบัฟเฟอร์ที่แตกต่างกัน?


2
ส่วนขยายการพับโค้ดสำหรับ json
ฉันกำลังจัดการกับไฟล์ json ที่มีบล็อกซ้ำหลายบล็อกที่มีค่าฟิลด์เดียว (จำนวนเต็ม) เปลี่ยนแปลง - อันที่จริงค่าที่เปลี่ยนแปลงทุกรายการเป็นเพียงค่าที่สอดคล้องกันก่อนหน้านี้เพิ่มขึ้น เพื่อให้ไฟล์ดังกล่าวอ่านง่ายฉันต้องการที่จะพับชุดบล็อกซ้ำทั้งหมดนี้เป็นบล็อกเดียวโดยมีข้อบ่งชี้ว่าช่วงของค่าการเปลี่ยนแปลงในบล็อกเหล่านี้เป็นเท่าใด กำลังหาวิธีการพับโค้ดใน emacs ผมพบและhs-minor-mode outline-modeอย่างไรก็ตามฉันไม่เห็นวิธีการใช้งานจากฟังก์ชันที่พวกเขามีให้กับสิ่งที่ฉันต้องการ มีคนให้ภาพรวมคร่าวๆว่าฉันจะทำสิ่งนี้ได้อย่างไร แก้ไข: ตัวอย่างของสิ่งที่ฉันพยายามทำ: รับไฟล์ json ที่มีลักษณะดังนี้: { "SomeArray": [ { "ChangingField": 1, "ConstantField" : "X" }, { "ChangingField": 2, "ConstantField" : "X" }, { "ChangingField": 3, "ConstantField" : "X" }, { "ChangingField": 4, "ConstantField" : "X" }, { …

3
แสดงหมายเลขบรรทัดบนข้อผิดพลาด
สมมติว่า emacs พ่นข้อผิดพลาดบางอย่างที่ฉันไม่เข้าใจ หรืออาจเกิดข้อผิดพลาดว่า "ค่าของ Symbol ในฐานะตัวแปรเป็นโมฆะ: โหมด" แต่มีสัญลักษณ์modesในรหัสของฉันเกิดขึ้นมากมายดังนั้นฉันต้องการบริบทบางอย่าง Emacs สามารถกำหนดค่าให้พูดถึงหมายเลขบรรทัดของเสียงกระเพื่อมเพื่อให้ฉันสามารถรู้รหัสที่ทำให้เกิดข้อผิดพลาดหรือไม่ ฉันได้ลองทำ(setq stack-trace-on-error '(buffer-read-only))และเรียกใช้รหัสที่ทำให้ล้มเหลวในความพยายามที่จะได้รับการติดตามสแต็ก ไม่มีการติดตามสแต็กอย่างใดอย่างหนึ่ง ฉันได้ลองโทรหาedebug-defunฟังก์ชั่นของฉันแล้วลองดู มันไม่ได้จนกว่าฉันจะก้าวออกจากฟังก์ชั่นที่เกิดข้อผิดพลาด (ฉันไม่สนใจสาเหตุของข้อผิดพลาดเฉพาะที่ฉันเผชิญอยู่ในขณะนี้เนื่องจากฉันกำลังพัฒนาทักษะการดีบักทั่วไปสำหรับ elisp โปรดแนะนำเกี่ยวกับวิธีที่ฉันสามารถเปล่งประกายหมายเลขบรรทัดหรือ sexp หรือการติดตามสแต็กจาก ข้อผิดพลาด.)

4
ใช้ Super in emacs -nw ใน linux
ฉันพยายามดิ้นรนหาคำถามที่ง่ายและตรงกับคำตอบดังนั้นฉันจึงตัดสินใจถามที่นี่ ถาม:มีวิธีใช้ Super in Emacs ที่เปิดตัวใน Terminal ใน Linux หรือไม่? PS : ฉันอ่านข้อมูลจำนวนมากเกี่ยวกับxmodmapแต่ฉันคิดว่ากุญแจคือเทอร์มินัลอีมูเลเตอร์ไม่สามารถแสดงถึงคีย์ Super อย่างไรก็ตามผลตอบแทนบางสิ่งบางอย่างและฉันก็คิดว่าการใช้สิ่งอำนวยความสะดวกของการแปล(kbd "s-SPC") .Xdefaults/Xฉันอยู่บนเส้นทางที่ถูกต้องหรือไม่? จากผลของkbdสิ่งที่ฉันต้องทำในฐานะ XTerm.VT100.translations

2
จะให้ eshell จดจำรหัสผ่าน sudo ได้สองนาทีได้อย่างไร
ในการbashเรียกใช้sudo ...คำศัพท์ทั่วไปเมื่อฉันเรียกใช้คำสั่ง bash จะจดจำรหัสผ่านของฉันได้ครู่หนึ่ง ทำให้การจัดการบรรจุภัณฑ์ง่ายขึ้น ตัวอย่างเช่น: sudo apt-get update # password ...... sudo apt-get install turing-brain # execute without requiring password again. เป็นไปได้ไหมที่จะทำให้สำเร็จใน eshall? (ฉันรู้termหรือansi-termใน Emacs สามารถทำได้ แต่ eshell รวมเข้ากับ Emac ได้ดีขึ้น)
15 eshell 

3
การแก้ไขและบำรุงรักษาไฮเปอร์ลิงก์โหมดองค์กร
นี่คือคำถามที่สองส่วนต้องทำอย่างไรกับลิงก์เสีย โหมดองค์กรมีฟังก์ชันใด ๆ สำหรับการตรวจสอบความถูกต้องของการเชื่อมโยงหลายมิติโดยเฉพาะอย่างยิ่งในประเทศหรือไม่ สิ่งนี้สามารถนำมาใช้เพื่อต่อสู้กับการเน่าของลิงค์ ยิ่งไปกว่านั้น org มีฟังก์ชั่นการใช้งานหรือไม่ดังนั้นถ้าฉันเปลี่ยนชื่อไฟล์เป็น dired มันจะอัปเดตไฟล์ที่ได้รับผลกระทบหรือไม่ สิ่งนี้สามารถป้องกันไม่ให้ลิงค์เน่าบางประเภทเกิดขึ้นก่อนอย่างน้อยก็สำหรับไฟล์ในเครื่อง
15 org-mode 

2
มีวิธีในการ daisy chain .dir-locals.el หรือไม่
สมมติว่าฉันมีไดเรกทอรีพร้อมไฟล์เหล่านี้ /foo/bar/baz/.dir-locals.el /foo/bar/.dir-locals.el /foo/.dir-locals.el เมื่อฉันไปสร้างไฟล์ใน/foo/bar/baz/ฉันต้องการเดซี่เชนพวกเขาด้วยกันที่/foo/.dir-locals.elใช้ก่อนแล้ว/foo/bar/.dir-locals.elจึง/foo/bar/baz/.dir-locals.el

3
คำสั่งให้เยี่ยมชม Github คำขอดึงสาขาปัจจุบันด้วย Magit
เป็นเรื่องธรรมดามากที่หลังจากผลักสาขาต้นน้ำที่กำหนดฉันจะต้องการเยี่ยมชมบน GitHub และสร้างคำขอดึง ฉันเริ่มรำคาญที่ต้องไปเยี่ยมชม repo ด้วยตนเองค้นหาสาขาและสร้างการประชาสัมพันธ์ ถาม:ฉันจะเขียนคำสั่งที่เยี่ยมชม PR url ในเบราว์เซอร์ได้อย่างไร? URL https://github.com/ORIGIN-REPO/compare/BRANCH-NAMEของพีอาร์จะได้รับจาก ตั้งแต่ทั้งoriginและbranch-nameรู้จักโดย Magit (และโดยธรรมดาgit) มันควรจะง่ายต่อการเขียนคำสั่งที่สร้าง URL นั้นและเรียกbrowse-urlมัน น่าเสียดายที่ฉันไม่รู้อะไรเลยเกี่ยวกับการทำงานภายในของ Magit ดังนั้นฉันจึงไม่รู้วิธีรับข้อมูลนั้น
15 magit 


1
เน้นไวยากรณ์ในบล็อกแหล่งที่มา
ฉันคิดว่าโหมดองค์กรเน้นบล็อกแหล่งที่มาด้วยโหมดที่เกี่ยวข้อง ตัวอย่างเช่น: #+BEGIN_SRC clojure (defn plus [a b] (+ a b)) #+END_SRC สิ่งนี้จะปรากฏขึ้นพร้อมกับการเน้นไวยากรณ์ที่ใคร ๆ คาดหวังหากอยู่ในบัฟเฟอร์ Clojure ด้วยเหตุผลบางอย่างการตั้งค่าของฉันเพิ่งแสดงตัวอย่างด้านบนในโทนสีเทาเดียว

2
เปลี่ยนรายการหรือโครงสร้างข้อมูลเป็นเอกสารองค์กร
ฉันกำลังเขียนแพคเกจที่จะแสดงรายการของ healines เนื้อหาและคุณสมบัติอื่น ๆ ซึ่งจะแสดงต่อผู้ใช้ ในขณะนี้org-modeบัฟเฟอร์ดูเหมือนจะเป็นวิธีที่ดีในการแสดงหัวข้อข่าวเหล่านี้ ด้านล่างเป็นตัวอย่างของวิธีการจัดโครงสร้างรายการนี้ มันเป็นเพียงแค่ตัวอย่างฉันสามารถแปลงเป็นโครงสร้างอื่น ๆ ได้อย่างง่ายดายตามความจำเป็น '(("One headline" "Some much longer content." (property1 . value) (property2 . value)) ("Second headline" "More much longer content." (property1 . value) (property2 . value))) มีฟังก์ชั่นหรือแพคเกจที่พิมพ์รายการดังกล่าวลงในorg-modeบัฟเฟอร์หรือไม่? นี่คือผลลัพธ์ที่ต้องการ * One headline :PROPERTIES: :property1: value :property2: value :END: Some much longer content. * …
15 org-mode 

2
ฟังก์ชั่นหรือมาโครสามารถระบุคำเตือนของคอมไพเลอร์ไบต์ได้หรือไม่?
ฉันกำลังเขียนฟังก์ชั่นซึ่งโดยหลักการแล้วจะมีจำนวนของข้อโต้แย้งโดยพลการ อย่างไรก็ตามในทางปฏิบัติก็ควรเท่านั้นที่เคยได้รับการผ่าน แม้จำนวนของการขัดแย้งและจะก่อให้เกิดผลที่ไม่พึงประสงค์อย่างอื่น นี่คือตัวอย่างจำลองสำหรับบริบท: (defun my-caller (&amp;rest args) (while args (call-other-function (pop args) (pop args)))) เมื่อไฟล์ elisp ถูกคอมไพล์ด้วยไบต์คอมไพเลอร์ไบต์จะส่งคำเตือนเมื่อเห็นฟังก์ชันที่ถูกเรียกใช้ด้วยจำนวนอาร์กิวเมนต์ที่ไม่ถูกต้อง เห็นได้ชัดว่ามันจะไม่มีทางเกิดขึ้นmy-callerเพราะมันถูกกำหนดให้ใช้หมายเลขใด ๆ ถึงกระนั้นก็อาจจะมีคุณสมบัติสัญลักษณ์ที่ฉันสามารถตั้งค่าหรือ(declare)รูปแบบที่ฉันสามารถเพิ่มความหมายของมัน สิ่งที่ต้องแจ้งให้ผู้ใช้ทราบว่าฟังก์ชั่นนี้ควรได้รับจำนวนอาร์กิวเมนต์ที่เท่ากัน มีวิธีแจ้ง byte-compiler ของข้อ จำกัด นี้หรือไม่? ถ้าไม่ใช่มันเป็นไปได้ไหมที่มีแมโครแทนที่จะใช้ฟังก์ชั่น

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