Emacs

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

2
นำทางไปยังซอร์สโค้ดของฟังก์ชันและตัวแปรในตัว
ตลอดทั้งวันฉันใช้C-h fหรือC-h v( describe-functionและdescribe-variable) เพื่อค้นหาเอกสารสำหรับฟังก์ชั่นและตัวแปรตลอดเวลา บ่อยกว่านั้นถ้าฉันไม่ได้รับข้อมูลทั้งหมดที่ฉันต้องการฉันจะคลิกที่ลิงค์ของไฟล์ในตอนท้ายของ: some-random-command is an interactive compiled Lisp function in `some-mode.el'. และนำทางไปยังซอร์สโค้ด ใช้งานได้กับแพ็คเกจที่ติดตั้ง แต่ดูเหมือนจะใช้งานไม่ได้กับแพ็คเกจในตัว ตัวอย่างเช่นที่ด้านบนของหน้าช่วยเหลือสำหรับคำสั่งdescribe-functionทั้งหมดที่ฉันได้รับคือ: describe-function is an interactive compiled Lisp function. ไม่มีลิงก์ไปยังซอร์สโค้ด มีวิธีใดที่จะนำทางไปยังซอร์สโค้ดของแพ็คเกจในตัวได้อย่างรวดเร็ว ฉันรู้ว่าฉันสามารถหาซอร์สโค้ดได้เช่น, /usr/share/emacs/24.5/lispและหาวิธีการเข้าถึงไดเรกทอรีนั้นได้อย่างรวดเร็ว แต่ฉันอยากรู้ว่ามีวิธีที่ง่ายและรวดเร็วในการนำทางฟังก์ชั่น / คำจำกัดความของตัวแปรในตัว รหัสแหล่งที่มา. ขอบคุณ!

1
การเรียงลำดับบรรทัดด้วยอักขระเน้นเสียง
เมื่อเรียงลำดับเส้นโดยsort-linesเส้นที่เริ่มต้นด้วยมาหลังจากสายที่เริ่มต้นด้วยä zมันจะดีถ้าบรรทัดสามารถเรียงลำดับโดยไม่ใส่เครื่องหมายเน้นเสียง Umlauts ฯลฯ เช่นในพจนานุกรม จะเป็นการดีที่เส้นเริ่มต้นด้วยควรจะมาหลังจากบรรทัดที่เริ่มต้นด้วยändernanderen มีวิธีง่ายๆในการค้นหาอักขระที่เน้นเสียงที่กล่าวถึงในhttps://superuser.com/a/675172/แต่ไม่สามารถใช้งานได้ที่นี่ ฉันสงสัยว่าสามารถแก้ไขปัญหานี้ได้ในสถานการณ์นี้หรือไม่
9 sorting 

1
ผสานประวัติจากหลาย ๆ eshells
ก่อนที่จะเปลี่ยนเป็น eshell ฉันมีการตั้งค่า zsh เพื่อที่จะ: เขียนลงในไฟล์ประวัติหลังจากทุกคำสั่ง ต่อท้ายแทนที่จะเขียนทับไฟล์ประวัติดังนั้นเมื่อใช้งานเชลล์หลาย ๆ เชลล์พวกเขาทั้งหมดจะถูกรวมเข้าเป็นหนึ่งในประวัติที่ยิ่งใหญ่ ตัวเลือก zsh ทั้งสองมีการจัดทำเอกสารไว้ที่นี่ (ดู APPEND_HISTORY และ INC_APPEND_HISTORY) สิ่งนี้มีประโยชน์มากเมื่อรวมกับขนาดประวัติขนาดใหญ่เพราะคุณสามารถเปิดเปลือกใหม่หลังจากออกคำสั่งและค้นหาในประวัติของคุณ (หากไม่มีตัวเลือกเหล่านี้ประวัติขนาดใหญ่จะไม่มีประโยชน์เนื่องจากจะมีเพียงประวัติของการปิดล่าสุดเท่านั้น เปลือก). นอกจากนี้ยังหมายความว่าคุณสามารถเปิดเชลล์ใหม่และให้พวกเขารู้คำสั่งล่าสุดของคุณในเชลล์อื่นทันที มีวิธีการตั้งค่า eshell กับพฤติกรรมนี้หรือไม่? กระสุนแรกดูเหมือนจะง่ายพอ แต่การต่อท้ายดูเหมือนจะยากกว่า ...
9 eshell  history 

1
วิธีการนำทางอย่างมีประสิทธิภาพมากที่สุดไปยังจุดเริ่มต้นหรือจุดสิ้นสุดของข้อความหลักของพาดหัวขององค์กร
มันเป็นเรื่องง่ายที่จะนำทางได้อย่างรวดเร็วจากจุดเริ่มต้นของหนึ่ง org โหมดพาดหัวที่จะใช้อีกปุ่มความเร็ว สมมติว่าตอนนี้ฉันอยู่ที่จุดเริ่มต้นของพาดหัวและฉันต้องการเพิ่มไปยังข้อความหลักในการเริ่มต้นทันทีหลังจากคำสำคัญสิ่งที่ต้องทำ จากนั้นM-f Spaceจะพาฉันไปยังที่ที่ฉันอยากไป M-f M-bถ้าไม่มีคำหลักสิ่งที่ต้องทำแล้วก็ ถ้าฉันต้องการไปที่ท้ายข้อความพาดหัวมันก็ยากกว่า C-eหากมีคำหลักที่สิ้นสุดและไม่มีข้อความพับซ่อนอยู่ภายใต้พาดหัวก็เป็นเรื่องง่ายเหมือน แต่นั่นไม่ค่อยเป็นเช่นนั้น หากมีการพับข้อความ C-e M-bแต่ไม่มีคำหลักแล้วฉันจะทำ แต่ถ้ามีเป็นคำหรือสองตอนท้ายของการพาดหัวพับแล้วฉันจะพบว่าตัวเองการพิมพ์ (สยองขวัญ) C-e M-b M-b M-b M-f! และหากมีคำหลักมากกว่าสองคำมันจะแย่ลง เมื่อฉันกระโดดไปรอบ ๆ และแก้ไขพาดหัวข่าวมากมายหลังจากนั้นสิ่งนี้อาจเป็นเรื่องที่ต้องคิดมากและมันก็ทำให้กระแสของฉันยุ่งเหยิงไปหมด โดยหลักการแล้วฉันต้องการกำหนดใหม่sและeเป็นปุ่มลัดเพื่อให้ได้รับสิ่งที่ฉันต้องการอย่างแท้จริงในทุกกรณีเหล่านี้ มีใครเห็นวิธีแก้ปัญหาที่มีอยู่กับปัญหานี้หรือไม่? ทักษะ elisp ของฉันนั้นน้อยมากและมันก็น่ากลัวที่จะแก้ปัญหานี้ด้วยตัวเอง

1
การใช้งาน request.el ง่าย ๆ
คำถามง่าย ๆ ของฉันน่าอายคือต่อไปนี้: ทำไมรหัสต่อไปนี้จึงใช้งานได้: (require 'request) (defun geocoder () (request "http://rpc.geocoder.us/service/csv" ;;; **Hardcoded parameter!** :params '(("address" . "1600 Pennsylvania Ave, Washington DC")) :parser 'buffer-string :success (function* (lambda (&key data &allow-other-keys) (when data (with-current-buffer (get-buffer-create "*request demo*") (erase-buffer) (insert data) (pop-to-buffer (current-buffer)))))) :error (function* (lambda (&key error-thrown &allow-other-keys&rest _) (message "Got …
9 elisp 


4
ฉันจะเพิ่ม“ บันทึกย่อด้านข้าง” ลงในไฟล์ข้อความในโหมดองค์กรได้อย่างไร?
ฉันสงสัยว่าฉันจะเพิ่มค่าเทียบเท่าของหมายเหตุด้านข้าง (ตัวชี้นำ, ตัวชี้ความคิด, การอ้างอิง) ไปยังข้อความในโหมดองค์กรได้อย่างไร? แท็กใช้งานได้ดี แต่ดูเหมือนจะถูก จำกัด เฉพาะพาดหัว ฉันยังสามารถหารข้อความทั้งหมดในคอลัมน์ขนาดคงที่สองคอลัมน์ (พร้อม|<140>|<20>|โต๊ะ) อย่างไรก็ตามในกรณีนี้ข้อความจะไม่ไหลอย่างเพียงพอ เชิงอรรถยังเป็นวิธีหนึ่งในการเพิ่มข้อมูลพิเศษ แต่จะไม่เป็นหมายเหตุข้างเคียงอีกต่อไป นั่นเป็นเหตุผลที่พวกเขาเรียกพวกเขาว่าเชิงอรรถฉันคิดว่า ฉันมีตัวเลือกอื่น ๆ อีกบ้าง? ฉันสามารถยกตัวอย่างเช่นเปิดบัฟเฟอร์สองอันและ "ผูก" การเลื่อนของทั้งคู่เพื่อให้บรรทัดที่ n ของบัฟเฟอร์ a ปรากฏขึ้นที่ด้านข้างของบรรทัด n ของบัฟเฟอร์ b เสมอหรือไม่
9 org-mode 

2
ฉันจะรับ drawer org ที่กำหนดเองเพื่อเปิด / ปิดได้อย่างไร?
ลิ้นชักของฉันดูเหมือนจะไม่ยุบด้วย TAB ฉันได้ลองตัวอย่างที่เป็นที่ยอมรับ : * This is a headline Still outside the drawer :DRAWERNAME: This is inside the drawer. :END: After the drawer. เมื่อฉันวางเคอร์เซอร์บนบรรทัด:DRAWERNAME:และกดปุ่มTABไม่มีอะไรเกิดขึ้น: นอกจากนี้เมื่อฉันวางเคอร์เซอร์บนบรรทัดแรกแล้วกดTABซ้ำ ๆ ฉันจะวนไปตามสถานะสองสถานะต่อไปนี้: ... และ: กล่าวอีกนัยหนึ่งพาดหัวทั้งหมดจะถูกยุบ แต่ตัวลิ้นชักจะไม่ยุบตัว
9 org-mode 

2
ฉันจะเขียนฟังก์ชั่น `เสร็จสิ้น ณ จุดฟังก์ชั่น 'ได้อย่างไร?
ฉันกำลังพิจารณาที่จะเขียนโหมดสำคัญสำหรับการแก้ไข Magic: The Gathering deck ส่วนใหญ่ดูเหมือนจะค่อนข้างตรงไปตรงมา แต่ฉันมีหนึ่งคำถาม มีการ์ดเวทย์มนตร์ที่ไม่ซ้ำกันประมาณ 15,000 การ์ด (การ์ดที่มีชื่อเฉพาะ) ฉันต้องการที่จะเสร็จสมบูรณ์กับพวกเขาโดยการเขียนฟังก์ชั่นที่สมบูรณ์ที่จุดฟังก์ชั่น ฉันกำลังมองหาตัวอย่างง่ายๆพื้นฐานของฟังก์ชั่น capf ที่เพิ่งทำเสร็จกับชุดคำเพื่อยึดโหมดของฉัน แต่ยังไม่พบอะไรเลย คุณรู้ตัวอย่างที่ดีสำหรับการเริ่มต้นนี้หรือไม่? และคุณเชื่อหรือไม่ว่าจะเป็นเรื่องง่ายที่จะได้รับประสิทธิภาพที่ดีหรือฉันต้องเขียนโครงสร้างข้อมูลของตัวเอง (ฉันคิดว่าอาจเป็น Trie) เห็นได้ชัดว่าฉันต้องหาวิธีซิงค์กับการ์ดใหม่ ฯลฯ และในอนาคตอาจจะสามารถค้นหาการ์ดด้วยคุณสมบัติอื่นนอกเหนือจากชื่อการ์ด แต่อาจรอได้

2
ฉันจะเขียน [0,1) ในโหมด LaTeX ได้อย่างไรโดยไม่ผิดเพี้ยน
เมื่อเขียน LaTeX โดยใช้latex-modeฉันมักจะต้องการเขียน "ช่วงครึ่งเปิด" ในข้อความของฉัน ยกตัวอย่างเช่น[0,1)ซึ่งหมายถึงชุดของตัวเลขทั้งหมดที่มี x0 <= x < 1 น่าเสียดายที่ "ตัวคั่นที่ไม่สมดุล" เหล่านี้ดูเหมือนจะทำให้โปรแกรมแยกวิเคราะห์เยื้องทำให้ข้อความต่อไปนี้ถูกเยื้องไม่เหมาะสมมักลอยไปทางขวา นี่คือเอกสารตัวอย่าง C-x h M-x indent-regionข้อความด้านล่างเป็นผลหลังจากทำ พฤติกรรมที่ถูกต้องคือให้ย่อหน้าทั้งสองย่อหน้ามีการเว้นวรรค 0 รายการ \documentclass{article} \begin{document} Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam volutpat at dui et mattis. Here is a half open interval $[0,1)$. Proin fringilla lectus nec mi …

1
วิธีทำให้ Emacs ตรวจสอบอีเมลของฉันและรายงานจดหมายใหม่
ฉันใช้ GNUS เพื่ออ่านอีเมลของฉัน มีวิธีทำให้กล่องจดหมายของฉันโดยอัตโนมัติและรายงานอีเมลใหม่หรือไม่? อาจมีบางแพ็คเกจที่ทำสิ่งนี้ใช่ไหม
9 gnus  email 

2
จะทราบเวอร์ชั่นของแพ็คเกจที่ต้องใช้ในแพ็คเกจของคุณได้อย่างไร?
ฉันมีแพ็กเกจสองสามอันในตอนนี้และในส่วน PackageRequires ฉันต้องการที่จะนำแพคเกจทั้งหมดที่ฉันต้องการมาใส่ดูเหมือนว่ามันต้องใช้ชื่อและเวอร์ชัน คุณจะกำหนดหมายเลขรุ่นที่ไหน? ตัวอย่างเช่นฉันมี (cl-lib "0.5") แต่อะไรคือวิธีที่ดีที่สุดในการกำหนดเวอร์ชันขั้นต่ำที่ฉันสามารถใช้ได้ ฉันสามารถดูเวอร์ชันปัจจุบันได้ แต่วิธีที่ดีที่สุดในการกำหนดค่าต่ำสุดคืออะไร นอกจากนี้แพคเกจบางอย่างที่จำเป็นไม่มีเวอร์ชันที่ระบุในไฟล์ ในกรณีเหล่านี้แนะนำอะไรบ้าง
9 elisp  package 

1
ความแตกต่างระหว่าง after-init-hook และ emacs-startup-hook คืออะไร
ดูเหมือนว่ามีหลาย hooks เกี่ยวกับการกระทำในการเริ่มต้น Emacs อย่างไรก็ตามฉันไม่แน่ใจว่าความแตกต่างของพวกเขาคืออะไรและ Googling สั้น ๆ ให้ข้อมูลเล็กน้อย มันเหมือนemacs-startup-hookถูกประหารชีวิตทันทีหลังจากที่ Emacs ถูกไฟไหม้ แต่ไม่จำเป็นต้องรอให้การเตรียมใช้งานเสร็จสิ้นหรือไม่
9 hooks 

1
วิธีการจัดการกับคอมไพล์ต่างกันกับโหมดแสดงผลบรรทัด?
ฉันพิมพ์ต้นฉบับของฉันในโหมดองค์กรพร้อมvisual-line-modeเปิดใช้งาน หนึ่งย่อหน้าในร่างกายของฉันเป็นเพียงบรรทัดที่อ่อนห่อ ในกรณีนี้เมื่อฉันพยายาม git diff (magit) เพื่อดูสิ่งที่ฉันเปลี่ยนไปบรรทัดทั้งหมด (ย่อหน้า) นี้จะถูกทำเครื่องหมายว่ามีการเปลี่ยนแปลง ฉันไม่สามารถค้นหาได้ว่าส่วนใดของวรรคนี้มีการเปลี่ยนแปลงอย่างง่ายดาย ฉันคิดว่าควรมีวิธีแก้ไขปัญหาบางอย่างที่ปรับปรุงปัญหานี้ แต่ฉันไม่พบคำตอบจากเว็บไซต์ ทุกคนสามารถแบ่งปันโซลูชันที่ดีของคุณได้ไหม?
9 magit  git 

3
จะควบคุมตำแหน่งที่จะแสดงบัฟเฟอร์คำหลัก org todo ได้อย่างไร
ถาม : ฉันจะควบคุมตำแหน่งที่จะให้orgบัฟเฟอร์คำหลักที่ต้องทำปรากฏได้อย่างไร การป้อนtodoคำหลักด้วยC-c C-t( org-todo) จะเปิดบัฟเฟอร์ใหม่พร้อมตัวเลือกคำหลักแล้วปิดอีกครั้งหลังจากที่ฉันเลือก จนถึงตอนนี้ดีมาก อย่างไรก็ตามจะใช้เวลาข้ามหน้าต่างอื่นในการทำเช่นนั้นซึ่งไม่ค่อยดีนักโดยเฉพาะอย่างยิ่งเนื่องจากต้องการแสดงบรรทัดหนึ่งหรือสองด้วยคำหลัก ดังนั้นด้วยรูปแบบต่อไปการกดปุ่มC-c C-tในขณะที่อยู่ในหน้าต่างด้านซ้าย ( some-org-buffer) จะเปิด*Org todo*ในหน้าต่างด้านขวา: +---------------------+---------------------+ | | | | | | | | | | | | | some-org-buffer | some-other-buffer | | | | | | | | | | | | | +---------------------+---------------------+ แต่ฉันต้องการให้มีหน้าต่างเล็ก ๆ ปรากฏขึ้นแยกเป็นแนวตั้งดังนี้: +---------------------+---------------------+ …

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