Emacs

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

2
ไฟล์ init เฉพาะโครงการ
ฉันมีการปรับแต่งบางอย่างสำหรับ emacs ที่ฉันต้องการใช้สำหรับโครงการเดียว แต่ไม่ส่งผลกระทบต่อ emacs ทั่วโลก มีวิธีใดบ้างที่ฉันสามารถให้ emacs โหลดไฟล์ init เฉพาะเมื่อเรียกใช้จากไดเรกทอรีหนึ่งหรือโหลดไฟล์ init ทั้งหมดโดยอัตโนมัติในไดเรกทอรีที่เปิดตัว
10 init-file 

1
org folding: แสดงแท็กหลังจาก“ …” ไม่ใช่ก่อนหน้าใช่ไหม
เมื่อโหนดระดับผู้ปกครองซึ่งมีทั้งไอเท็มลูกและแท็กถูกพับเก็บโดยtabการ...บ่งชี้สำหรับไอเท็มชายด์ที่ถูกพับถูกเชื่อมโยงกับแท็กแทนที่จะเป็นข้อความโหนด เช่นจะแสดงเช่น: *1st level node :@tag1... ในขณะที่ฉันอยากจะเป็น: *1st level node... :@tag1 เป็นไปได้ไหม?
9 org-mode 

1
วิธีการยกเลิก minibuffer จากบัฟเฟอร์หลัก
สมมติว่าฉันทำM-x blablaโดยไม่ต้องกดreturnแล้วฉันเปลี่ยนเป็นบัฟเฟอร์หลัก หาก curser อยู่ที่ minibuffer ฉันสามารถยกเลิก minibuffer C-gโดยทางลัด แต่ถ้าเคอร์เซอร์อยู่ที่บัฟเฟอร์หลักทางลัดนี้จะไม่ยกเลิก minibuffer หากฉันกดM-xข้อผิดพลาดCommand attempted to use minibuffer while in minibufferจะปรากฏขึ้น มี shorcut ในตัวที่ยกเลิกเนื้อหาที่ยังไม่เสร็จสมบูรณ์ก่อนหน้านี้ของ minibuffer อย่างสมบูรณ์ตั้งแต่บัฟเฟอร์หลัก

3
วิธีการเริ่มต้น emacs ในโหมด "nothing" (`basic-mode`)
หากฉันพิมพ์emacs test.shEmacs ยืนยันที่จะให้ฉันอยู่ในShell-scriptโหมด อีกครั้งที่ฉันต้องการแก้ไขไฟล์help.txtแล้ว Emacs ทำให้ฉันอยู่ในTextโหมด แต่บางครั้งฉันไม่ต้องการสิ่งนี้โดยเฉพาะอย่างยิ่งเมื่อฉันกำลังทำแปะขนาดใหญ่ใน Emacs จากแหล่งอื่น ๆ ฉันจะเริ่ม Emacs ในโหมด "ไม่มีอะไร" ได้อย่างไร ไม่มีการเยื้องพิเศษระยะห่าง ฯลฯ และ Emacs จะนำตัวอักษรไปตามที่ป้อน UPDATE:นี่คือตัวอย่าง คัดลอกข้อความต่อไปนี้ไปยังคลิปบอร์ดของคุณเปิด emacs (แม้ในโหมดพื้นฐาน) และวาง <?xml version="1.0" encoding="UTF-8" standalone="no"?> <EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:shibmd="urn:mace:shibboleth:metadata:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ID="FARM20190311T2248" Name="https://www.example.com/" entityID="https://www.example.com/" validUntil="2020-03-11T22:48:12Z"><ds:Signature> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> Emacs ยืนยันในการเปลี่ยนระยะห่าง (แม้ในโหมดพื้นฐานและการใช้-q) เป็น: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <EntityDescriptor …

2
วิธีรันคำสั่งเฉพาะก่อนหน้านี้ใน Emacs shell (โดยไม่ต้องทำซ้ำ)
ใน Emacs shell มีคำสั่งที่คล้ายกับM-pแต่คำสั่งใดที่จะข้ามคำสั่งซ้ำ? นั่นคือมันจะไปที่คำสั่งต่าง ๆถัดไป คล้ายกับเทอร์มินัล Linux ทั่วไป ดังนั้นถ้าฉันต้องวิ่ง: ls ./script ./script ./script make และกดM-pสามครั้งฉันต้องการให้มันไปที่คำสั่ง ls หรืออีกวิธีหนึ่งฉันจะกำหนดคำสั่งเช่นนี้ได้อย่างไร

2
เป็นไปได้ไหมที่จะเพิ่มเทมเพลตอื่นที่ไม่ใช่ # + BEGIN_ # + END_ ไปยัง org-structure-template-alist
ฉันพบว่าองค์กรโครงสร้างแม่แบบ-alist เปลี่ยนแปลง (ฉันใช้ org โหมดรุ่น 9.2) #+BEGIN_<some block tag> #+END_<some block tag>เพื่อขยายโดยอัตโนมัติ ฉันสงสัยว่าเป็นไปได้หรือไม่ที่จะเพิ่มเทมเพลตชนิดอื่น เช่น:PROPERTIES:<some properties>:END:แม่แบบ เป็นไปได้หรือฉันควรเปลี่ยนเป็นแพ็คเกจอื่น ๆ เช่น yasnippets หรือไม่?
9 org-mode 

3
เป็นไปได้ไหมที่จะลบการแข่งขันด้วยตนเองในโหมด grep
หลังจากเรียกใช้(grep)บัฟเฟอร์ grep ปรากฏขึ้นพร้อมกับการแข่งขัน การแข่งขันบางรายการไม่เกี่ยวข้องและเป็นการดีที่จะลบด้วยตนเอง วิธีนี้ฉันสามารถใช้ grep buffer เพื่อเก็บเฉพาะรายการที่เกี่ยวข้องกับการตรวจสอบปัจจุบัน เป็นไปได้ไหม
9 grep 

1
unicode.txt slowness
ย้ายไปรอบ ๆ จุด (โดยใช้ปุ่มลูกศร) ใน XAH ของunicode.txtในfundamental-modeจะเห็นได้ชัดช้ากว่าในไฟล์ข้อความธรรมดา อักขระที่ไม่ใช่ ASCII หลายตัวเป็นปัญหาหรือไม่ มีอะไรอีกไหม เกี่ยวกับ: GNU Emacs 25.2.1 (x86_64-w64-mingw32) ของ 2017-04-24 เริ่มต้นด้วยตัวเลือก -Q

2
eww ---> ไลบรารี libxml2 ไม่พบ
Windows 10 (64 บิต), Emacs 25.1 ฉันพยายามที่จะเปิดใน Emacs บางหน้าเว็บ เช่นwww.google.com ดังนั้น M-x eww Enter URL: www.google.com แต่ฉันได้รับข้อผิดพลาด: libxml2 library not found

3
จะสร้างและเปิดใช้งาน autoloads สำหรับแพ็คเกจท้องถิ่นได้อย่างไร
เป็นที่ชัดเจนว่าแพคเกจท้องถิ่น / กำหนดเอง / ส่วนบุคคลไม่ควรมีการเปิดตัวอย่างเป็นทางการและมันจะโง่หากได้รับประโยชน์จากการสนับสนุนการจัดการแพคเกจในตัว ฉันสงสัยว่าจะสร้างและเปิดใช้งาน autoloads สำหรับแพ็คเกจท้องถิ่นได้อย่างไร ซึ่งคล้ายกับpackage.elแพคเกจที่ติดตั้งจาก ELPA เพื่อหลีกเลี่ยงการสร้างล้อใหม่มีวิธีที่จะ "เสแสร้ง" ที่ไดเรกทอรีท้องถิ่นบางรายการ (ที่มีไดเรกทอรีย่อยแต่ละแห่งซึ่งเป็นแพคเกจท้องถิ่น / กำหนดเอง / ส่วนตัว) เป็น ELPA หรือไม่ ฉันยังเปิดให้el-getหากสถานการณ์ดังกล่าวสามารถได้รับการสนับสนุนผ่านเช่นสูตรอาหารที่กำหนดเอง ฉันแน่ใจว่างานนั้นค่อนข้างธรรมดาและใครก็ตามที่ใช้ Emac ในระดับสูงก็มาถึงจุดนั้นไม่ช้าก็เร็ว ใครช่วยแบ่งปันประสบการณ์ของพวกเขาในสาขานี้?

2
เลือก (เช่นเป็นภูมิภาค) การแข่งขันปัจจุบันในการค้นหาแบบเพิ่มหน่วย
เมื่อค้นหาสตริงด้วยC-sฉันต้องการกดปุ่มบางปุ่มเพื่อออกจากโหมดค้นหาแต่ยังคงรักษาตัวเลือกของการจับคู่ไว้ ด้วยวิธีนี้ฉันสามารถเริ่มพิมพ์ได้ทันทีและแทนที่การแข่งขันครั้งสุดท้าย ตัวอย่างเช่นสมมติว่าฉันมีเอกสารดังต่อไปนี้: The quick brown fox jumps over the lazy dog. หากฉันค้นหา "สันหลังยาว" emacs จะเลือกคำนั้นเช่นนั้น (วงเล็บเหลี่ยมคือการเลือก, ไพพ์คือเคอร์เซอร์): The quick brown fox jumps over the [lazy|] dog. ตอนนี้ถ้าฉันกดreturnemacs จะรักษาตำแหน่งเคอร์เซอร์ของฉัน แต่จะยกเลิกการเลือก "สันหลังยาว": The quick brown fox jumps over the lazy| dog. แทนที่จะเป็นเช่นนี้ฉันต้องการทางลัดที่จะออกจากโหมดการค้นหา แต่รักษาการเลือกการจับคู่ปัจจุบันไว้เหมือนในสถานะที่สองด้านบน


1
วิธีรับการกดแป้นในพื้นที่เสียงก้องทันที?
ฉันจะได้รับการกดแป้นในพื้นที่เสียงก้องทันทีได้อย่างไร ตัวอย่างเช่น: เมื่อฉันป้อนลำดับคีย์C-u jมันจะไม่แสดงในพื้นที่เสียงก้องทันที แต่จากนั้นฉันกดปุ่มkและฉันค้นพบว่าฉันพิมพ์ผิดก่อน ดังนั้นฉันคิดว่ามันจะมีประโยชน์สำหรับมือใหม่เช่นฉันเมื่อฉันกดแป้นบางปุ่มเพื่อเรียกคำสั่งสำหรับพื้นที่ echo เพื่อแสดงทันที

3
Emacsclient: emacs เดียวประมวลผลตลอดเวลาตั้งแต่เริ่มต้นและไม่ปิด & ซ่อน GUI ที่ดีขึ้น
เนื่องจาก emacsclient สามารถจัดการเวลาในการโหลดแพ็กเกจที่ยาวกว่าได้ฉันจึงอยากให้กระบวนการ emacs อย่างน้อยหนึ่งกระบวนการและส่วนใหญ่จะมีเพียงกระบวนการเดียว emacsเปิดเป็นกระบวนการพื้นหลังและซ่อน GUI ได้ดีขึ้น ตอนนี้ฉันกำหนดฟังก์ชันต่อไปนี้ใน. bashrc: emc () { if [[ $# -eq 0 ]]; then emacs --eval "(suspend-frame)" & return fi args=($*); setsid emacsclient -c -e "(find-file \"${args[*]}\")" } และยังมีบรรทัดต่อไปนี้ใน. bashrc: emc ดังนั้นทุกครั้งที่ฉันเปิดเชลล์ฉันจะต้องมีกระบวนการ emacs ใหม่ ปัญหาคือฉันจะมีกระบวนการ emac ที่ไม่จำเป็นเพิ่มเติมอีกมากมายหลังจากเปิดเชลล์จำนวนมาก แต่ผมเพียงต้องการที่จะรักษาความเป็นหนึ่งเดียว emacs ประมวลผลตลอดเวลาจากการเริ่มต้นที่ดีกว่าซ่อน GUI

2
โทร emacsclient จากโปรแกรมที่เรียกโดย Emacs
ฉันพบปัญหาในการดูไฟล์เอกสาร PDF ด้วย AucTex ฉันใช้pdf-toolsเพื่อดูไฟล์ PDF จากภายใน Emacs และฉันตั้งemacsclient -nเป็นค่าเริ่มต้น pdf-viewer ของฉัน (ผ่าน xdg-mime บน Debian Linux) สิ่งนี้ใช้ได้ดีในสถานการณ์ส่วนใหญ่ แต่มันก็แบ่งการ(Tex-documentation-texdoc ...)ทำงานของ Auctex ( C-c ?) ฉันได้ทำให้ปัญหาแคบลงเป็นรหัสบรรทัดเดียว เมื่อฉันพยายามที่จะดูเอกสารประกอบของlistingsแพคเกจTeX-documentation-texdocเปลี่ยนสิ่งนี้เป็น sexp ต่อไปนี้: (shell-command-to-string "texdoc --view listings") texdocในทางกลับกันเรียกร้องemacsclientให้เปิดไฟล์ (ขึ้นอยู่กับวิธีที่ฉันกำหนดค่าเดสก์ท็อปของฉันผ่าน xdg) อย่างไรก็ตาม ณ จุดนี้ Emacs แฮงค์และฉันต้องออก ( C-g) เพื่อรับการควบคุมกลับ หลังจากนั้นจะไม่มีการเปิดไฟล์ PDF ใหม่ สิ่งเดียวกันเกิดขึ้นถ้าฉันพยายามโทรหา emacsclient โดยตรง: (shell-command-to-string …

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