Emacs

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

4
วิธีการจัดแนวรายการบางอย่างในแบบจำลองใช่ไหม?
รับการกำหนดค่า modeline ดังต่อไปนี้: (setq-default mode-line-format (list ;; Current buffer name "%b " ;; Major mode "[%m] " ;; Modified status "[%*] " ;; Cursor position "Line: %l/%i Column: %c")) ฉันต้องการให้รายการสุดท้ายจัดเรียงชิดขวา
9 mode-line 

2
มีวิธีง่ายๆในการใช้ไฟล์ org ทั้งหมดที่อ้างอิงในไฟล์หลักสำหรับตารางนาฬิกาโหมด org หรือไม่
ฉันกำลังใช้โหมดองค์กรเพื่อติดตามเวลาที่ใช้ในโครงการต่างๆ ฉันมีไฟล์ org หลักหนึ่งไฟล์และอีกสองไฟล์สำหรับโครงการขนาดใหญ่ที่ฉันกำลังดำเนินการอยู่ org-agenda-filesทั้งสามมีการระบุไว้ใน ฉันสร้างตารางนาฬิกาในไฟล์ org หลักและตั้งค่า :scope agenda-with-archives ในส่วนหัวนาฬิกาเพื่อสรุปเวลาที่ใช้ไป ทั้งหมดนี้ทำงานได้ดี อย่างไรก็ตามฉันยังมีโครงการขนาดเล็กอีกสองสามแห่งที่มีเวลาติดตามในไฟล์องค์กรของตัวเอง (อยู่ในไดเรกทอรีย่อยที่มีทุกอย่างเกี่ยวกับโครงการเหล่านั้น) และฉันต้องการติดตามเวลาในโครงการเหล่านั้นด้วย แน่นอนว่าฉันสามารถเพิ่มไฟล์เหล่านั้นลงไปorg-agenda-filesได้ แต่นั่นหมายถึงการอัปเดต.emacsทุกครั้งที่ฉันเริ่มโครงการขนาดเล็กใหม่ ไม่ใช่จุดจบของโลก แต่เนื่องจากฉันมีลิงก์ไปยังไฟล์โครงการขนาดเล็กในไฟล์ org หลัก (ดูตัวอย่างด้านล่าง) แล้วฉันต้องการตั้งค่าเป็น:scopeบางอย่างเช่น :scope agenda-with-archives linked-org-files เป็นการดี (แม้ว่าฉันไม่ได้ใช้สิ่งนั้น) รวมถึงไฟล์เก็บถาวรของโครงการขนาดเล็กเหล่านั้นจะดี (เช่น:scope linked-org-files-with-archives) นี่เป็นตัวอย่างของโครงสร้างไฟล์หลักของฉัน: * Small project 1 See file:~/Projects/Project 1/notes_project_1.org for more details. * Small project 2 See file:~/Projects/Project 2/notes_project_2.org. ** …
9 org-mode 

2
ฟังก์ชั่นเพื่อลบความคิดเห็นทั้งหมดจากบัฟเฟอร์โดยไม่ย้ายไปฆ่าแหวน
ฉันต้องสามารถลบความคิดเห็นทั้งหมดจากบัฟเฟอร์จากรหัส elisp ตอนนี้ฉันกำลังใช้: (goto-char (point-min)) (comment-kill (count-lines (point-min) (point-max))) อย่างไรก็ตามcomment-killเป็นฟังก์ชั่นอินเทอร์แอคทีฟและการใช้หลักของมันคือลบความคิดเห็นทีละรายการ นอกจากนี้ยังมีผลข้างเคียงที่น่ารำคาญเนื่องจากมันเพิ่มความคิดเห็นทั้งหมดที่ฆ่าไปยังริง - ริง มีฟังก์ชั่นที่อนุญาตให้ลบ (ไม่ฆ่า) ความคิดเห็นบางส่วนหรือทั้งหมดจากบัฟเฟอร์หรือไม่?

1
วิธีการรวบรวม emacs ที่มีสัญลักษณ์ debug?
ฉันมีปัญหาในการเดินผ่านซอร์สโค้ด emacs ใน gdb ฉันคิดว่าฉันขาดสัญลักษณ์แก้ปัญหา ทำตามคำแนะนำจากhttps://stackoverflow.com/a/4298982/2752242ฉันลองแล้ว: ./configure CFLAGS="-ggdb3 -O0" CXXFLAGS="-ggdb3 -O0" LDFLAGS="-ggdb3" --with-gif=no --prefix=$HOME/local/apps/emacs-24.4/ แต่นั่นไม่ได้ผล มีคำแนะนำในการรวบรวมสัญลักษณ์การดีบักหรือไม่ ขอบคุณ!
9 debugging 

1
การจดจำประวัติระหว่างเซสชันใน Inferior Emacs Lisp Mode
ฉันไม่สามารถทำให้ Emacs จดจำประวัติของ*ielm*บัฟเฟอร์ระหว่างเซสชันได้ comint-input-ringเท่าที่ผมสามารถบอกประวัติดังกล่าวจะถูกบันทึกไว้ในตัวแปรบัฟเฟอร์ท้องถิ่น ดังนั้นฉันจึงได้เพิ่มการแสดงออกต่อไปนี้ไปยังไฟล์ init ของฉัน: (setq desktop-locals-to-save (append desktop-locals-to-save '((comint-input-ring . 50)))) มันไม่ทำงาน ฉันรู้ว่าdesktopแพคเกจใช้งานได้เพราะ Emacs จดจำตัวแปรทั่วโลกที่ฉันเพิ่มไว้desktop-globals-to-saveในไฟล์ init ของฉัน - แก้ไข: savehistไม่ทำงานอย่างใดอย่างหนึ่ง ฉันคิดว่าเป็นเพราะcomint-input-ringเป็นตัวแปรบัฟเฟอร์ท้องถิ่น

2
ทำให้ isearch ข้ามเนื้อหาที่ถูกพับในโหมดองค์กร
ถาม:ฉันisearchจะบอกให้เพิกเฉยเนื้อหาของบล็อกที่ถูกพับโดยค่าเริ่มต้นในorg-modeบัฟเฟอร์ได้อย่างไร? โดยเฉพาะอย่างยิ่งฉันต้องการisearchละเว้นเนื้อหาของบล็อกความคิดเห็นและลิ้นชัก : เมื่อการเขียนเอกสารในorg-modeฉันมักจะใช้บล็อกความคิดเห็นและลิ้นชักที่กำหนดเองเพื่อเก็บบันทึกประเภทต่างๆเกี่ยวกับข้อความที่ฉันเขียน ฉันให้พวกเขาพับตามค่าเริ่มต้นเพื่อให้แน่ใจว่าเนื้อหาของพวกเขาไม่กวนใจฉัน: (add-hook 'org-mode-hook #'org-hide-block-all) วิธีนี้ใช้งานได้ดี แต่จะไม่หยุดorg-modeขยายบล็อกเหล่านี้หากมีรายการที่ตรงกันสำหรับสตริงที่ฉันกำลังใช้isearchอยู่

3
เดินต่อไปจนสุดบรรทัด
ค่าเริ่มต้นของการเชื่อมโยงคีย์C-a/C-eนั้นมีเพียงสิ่งเดียวเท่านั้นย้ายไปที่จุดเริ่มต้น / สิ้นสุดของบรรทัดมีแพ็คเกจใด ๆ ที่สามารถทำให้ Emacs ทำหน้าที่ดังนี้ หากฉันไม่ได้อยู่ที่ท้ายบรรทัดC-eจะไปที่ท้ายบรรทัดมิฉะนั้นให้ไปจบบรรทัดถัดไป ถ้าฉันไม่อยู่ที่จุดเริ่มต้นของบรรทัดC-aจะไปที่จุดเริ่มต้นของบรรทัดมิฉะนั้นไปที่จุดเริ่มต้นของบรรทัดถัดไป ประเด็นก็คือคุณก็สามารถให้การกดปุ่มC-a/eเพื่อไปยังจุดเริ่มต้น / C-n/pท้ายของทุกสายโดยไม่ต้องย้ายนิ้วของคุณเพื่อการเข้าถึง และด้วยคำนำหน้า ( C-u) พวกเขาจะไปที่จุดเริ่มต้น / สิ้นสุดของบรรทัดในทิศทางตรงกันข้าม

1
ทำให้ `delete-Duplicate Lines 'ละเว้นบรรทัดว่างเปล่าและคำบางคำ
ฉันกำลังแก้ไขข้อความในโหมดองค์กรมีการทำซ้ำหลายบรรทัดเนื่องจากเป็นส่วนหนึ่งของไฟล์ที่แตกต่างจากหัวข้อเดียวกัน ฉันต้องการใช้delete-duplicate-linesเพื่อลบบรรทัดที่ซ้ำกันอย่างไรก็ตามคำสั่งจะลบบรรทัดว่างด้วยซึ่งเป็นสิ่งที่ฉันไม่ต้องการ (ไม่เช่นนั้นจะไม่มีย่อหน้า!) ฉันต้องการละเว้นคำบางคำที่มีอยู่ตามลำพังในบรรทัดเช่น"ดำเนินการต่อ"มันซ้ำหลายครั้งในข้อความ แต่ฉันต้องการเก็บไว้เพราะจำเป็น

2
ฉันสามารถตั้งค่าไฟล์เฉพาะให้ยอมรับการเปลี่ยนแปลงโดยอัตโนมัติและเงียบ ๆ ได้หรือไม่?
นั่นคือฉันสามารถระบุไฟล์เฉพาะที่ฉันไม่ต้องการให้ Emacs แจ้งให้ฉันทราบว่าไฟล์นั้นมีการเปลี่ยนแปลงบนดิสก์และแจ้งให้ฉันทราบว่าฉันต้องการยอมรับการเปลี่ยนแปลงหรือไม่? ฉันไม่ต้องการทำสิ่งนี้ทั่วโลกเฉพาะไฟล์ที่ฉันรู้ว่าจะมีการเปลี่ยนแปลงบ่อยครั้งนอก Emacs (โดยเฉพาะอย่างยิ่งไฟล์ Org ที่เกี่ยวข้องกับปฏิทิน)

2
ความสามารถในการบายพาสระหว่างรุ่นของ Emacs
บางครั้งฉันรัน Emacs หลายรุ่นจากโฮมไดเร็กตอรี่เดียวกัน ฉันมีไฟล์ที่รวบรวมไบต์จำนวนหนึ่ง Bytecode ไม่สามารถใช้งานได้กับทุกรุ่นของ Emacs ดังนั้นฉันจึงดูแลไดเรกทอรีแยกต่างหากสำหรับ.elcไฟล์สำหรับแต่ละรุ่น รุ่นใดบ้างที่ bytecode เข้ากันได้ ฉันมี gnu-19.29 gnu-20 gnu-21 gnu-22 gnu-23 gnu-24 source x-19 x-20 x-21 เช่นไดเรกทอรีสำหรับแต่ละรุ่นใหญ่โดยมีการแยกเพิ่มเติมที่ 19.29 (ฉันไม่เคยใช้รุ่นเก่าในเครื่องนี้มิฉะนั้นจะมีgnu-19) และไดเรกทอรีที่แยกต่างหากสำหรับ GNU Emacs และ XEmacs แม้ว่าฉันอาจจะระมัดระวังมากเกินไป นโยบายอย่างเป็นทางการเกี่ยวกับความเข้ากันได้ของ bytecode ในรุ่น Emacs คืออะไร? ฉันสามารถใช้เวอร์ชันหลักอย่างมั่นใจได้หรือไม่? ฉันสามารถรวมบางเวอร์ชั่นได้หรือไม่ มีตัวบ่งชี้เวอร์ชัน bytecode หรือการตรวจสอบที่ฉันสามารถสอบถามเมื่อรวบรวมเพื่อสร้างชื่อไดเรกทอรีแทนการใช้รุ่น Emacs หรือไม่ โปรดทราบว่าฉันมักจะสนใจความเข้ากันได้แบบเต็มรูปแบบไม่ใช่แค่ความเข้ากันได้แบบย้อนหลัง ฉันอาจใช้ Emacs 27.3 และรวบรวมไฟล์บางไฟล์แล้วก็ Emacs 27.2 …

2
ฉันจะสร้างบัฟเฟอร์ dired ที่แสดงรายการไฟล์ที่เปิดอยู่ทั้งหมดได้อย่างไร
ฉันมีกลไกสำหรับการเขียนรายการลงดิสก์จากdiredบัฟเฟอร์ แต่น่าเสียดายที่ไฟล์ที่ฉันแพตช์นั้นเต็มไปด้วยระบบไฟล์ ฉันจะสร้างdiredบัฟเฟอร์จากไฟล์ที่เปิดอยู่ทั้งหมดได้อย่างไร
9 buffers  dired  files 

3
Orgmode แทรกลิงค์จากคลิปบอร์ด?
มีวิธีง่าย ๆ ในการแทรกลิงค์โหมดองค์กรโดยตรงจากคลิปบอร์ดของระบบหรือไม่? ฉันกำลังคิดที่จะเลือก URL ใน Safari และแทรกลิงก์นั้นลงในเอกสารโหมดองค์กรโดยตรง
9 org-mode 

2
ข้อความชั่วคราวในตำแหน่งหน้าต่างที่ไม่มีข้อความสำหรับปรับขนาด / ซ้อนทับใช่หรือไม่
ถาม:ฉันจะแสดงข้อความชั่วคราวในหน้าต่างที่ตำแหน่งหน้าจอโดยไม่มีข้อความสำหรับปรับขนาด / ซ้อนทับได้อย่างไร ฉันคุ้นเคยกับแนวคิดพื้นฐานที่อยู่เบื้องหลังคุณสมบัติข้อความและภาพซ้อนทับ (ดูที่กระทู้นี้ ) ใช้มันสองสามครั้ง แต่ฉันไม่คุ้นเคยกับมันเลย ความเข้าใจที่ จำกัด ของฉันคือต้องมีข้อความเพื่อปรับขนาดหรือซ้อนทับ แต่ฉันสงสัยว่าจะใช้ส่วนต่าง ๆ ของหน้าต่างที่ไม่มีข้อความใด ๆ นี่คือภาพหน้าจอสำหรับตัวอย่าง: เราจะใส่ข้อความ (ชั่วคราว) ลงในช่องสีแดงในสกรีนช็อตนั่นคือช่องว่างทางด้านขวาของข้อความหรือด้านล่างบรรทัดสุดท้ายในบัฟเฟอร์ได้อย่างไร

1
โหมด Helm และ LaTeX
เมื่อฉันเรียกใช้คำสั่งLaTeX-environment(ผูกไว้กับC-c C-eค่าเริ่มต้น) Helm เลือกอย่างถูกต้องจากรายการของสภาพแวดล้อมที่เกี่ยวข้องทั้งหมด (เช่นรายการเดียวกันที่ฉันได้รับโดยไม่ต้องเปิด Helm) พรอมต์จะอ่าน "ประเภทสภาพแวดล้อม: (ค่าเริ่มต้น foo)" โดยที่ 'foo' เป็นค่าที่เก็บไว้ในLaTeX-default-environment(ซึ่งจะถูกตั้งค่าเป็นสิ่งที่ฉันลงเอยด้วยการใช้ในการโทรครั้งสุดท้ายไปLaTeX-environment) ถ้าฉันกลับมาตอนนี้ฉันจะได้สภาพแวดล้อม 'นามธรรม' ซึ่งเป็นรายการแรกในบัฟเฟอร์ Helm ฉันจะให้ Helm เคารพได้LaTeX-default-environmentอย่างไร
9 helm  latex 

3
มีวิธีใดที่จะทำให้พรอมต์และเอาต์พุตก่อนหน้าไม่สามารถแก้ไขได้ในโหมด shell / term?
นี่เป็นคำถามที่ตื้นมาก แม้ว่าการansi-termเริ่มต้นทำงานได้อย่างถูกต้องเมื่อฉันเปิดมันครั้งแรกดูเหมือนว่าจะลดลงในโหมด 'แก้ไขได้' หลังจากคำสั่งไม่กี่คำเช่นเมื่อฉันC-a(เริ่มต้นบรรทัด) ตามด้วยC-k(เส้นฆ่า) มันจะลบล้างข้อความแจ้งทั้งหมด สำหรับสติที่สวยงามของฉันมีวิธีใดที่จะทำให้ข้อความแจ้งเตือนและผลลัพธ์ก่อนหน้านี้ไม่สามารถแก้ไขได้ (สำหรับshell) (อัปเดตเพื่อยกเว้นคำศัพท์ที่ระบุความแตกต่างที่มีความหมาย) ฉันใช้ zsh ใน Emacs 24.4; ระบบปฏิบัติการคือ LXDE (Ubuntu 14.04) ผ่าน Virtual Box (เป็นการดีที่ฉันยังคงสามารถเลื่อนเคอร์เซอร์ของฉันไปรอบ ๆ ... )

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