Emacs

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

1
การเปลี่ยนบทบาทของขีดเส้นใต้และเครื่องหมายลบเพียงแค่ในโหมด LateX
ระหว่างการทำงานกับไฟล์ tex ที่มี auctex + emacs (โหมด LateX) ฉันใช้ _ (ขีดเส้นใต้) บ่อยขึ้นแทน - (เครื่องหมายลบ) เหมือนกับ ^ แทนที่จะเป็น 6 ความไม่สะดวกคือฉันควรกดปุ่ม Shift บ่อยขึ้น มันจะเป็นที่พึงปรารถนาในการปรับแต่ง emacs ในแบบที่เมื่อ emacs อยู่ในโหมด LateX ( และเพียงแค่ในโหมดนี้ ) เมื่อฉันพิมพ์ - emacs ประเภท _ และเมื่อฉันพิมพ์ _ ประเภท emacs - เช่นการเชื่อมโยงคีย์ต่อไปนี้: - ให้ _ _ ให้ - 6 ให้ ^ …

1
วิธีการแสดง PDF หลายหน้าพร้อมกันใน Docview
ฉันใช้ Emacs, AUCTeX และlatex-preview-pane-modeเพื่อสร้างงานนำเสนอ PDF อย่างไรก็ตามภาพตัวอย่างจะแสดงทีละหน้าเท่านั้น นี่เป็นวิธีเดียวหรือไม่ มันเปลืองพื้นที่แนวตั้งบางส่วนบนหน้าจอ เป็นไปได้หรือไม่ที่ Docview จะแสดงตัวอย่าง PDF หลายหน้าในหนึ่งหน้า?

1
วิธีรวมเอาต์พุตของคำสั่งเชลล์ในบล็อกซอร์สโค้ดโหมด org?
ตัวอย่างเช่นฉันได้รับการสาธิตเพื่อแสดงคำสั่งและผลลัพธ์ของมันและฉันต้องการที่จะแทรกพวกเขาลงใน.orgไฟล์เช่น snippet ซอร์สโค้ดของ C หรือบางสิ่งบางอย่าง ฉันต้องการส่งออกไฟล์ไปยังไฟล์ HTML และให้ไฮไลต์บล็อกเหมือนกับตัวอย่างอยู่ในหนังสือหลายเล่ม ตัวอย่างเช่นฉันมี #+BEGIN_SRC shell $ ls dir1 dir2 file1 file2 ... or any other examples like this ... #+END_SRC แต่ไม่สามารถแปลงเป็น HTML ได้: ข้อความแสดงข้อผิดพลาดที่อ่าน shell-mode: อาร์กิวเมนต์ประเภทผิด: processp, ศูนย์ ปรากฏขึ้นตลอดเวลา ฉันควรใช้โหมดใดในการแทนที่shellและถ้าฉันไม่ควรใช้#+BEGIN_SRC...#+END_SRCรูปแบบใดฉันควรใช้อะไรแทน

1
การปรับใช้ Elisp อีกครั้ง
Emacs ใช้ล่ามสำหรับ elisp ใน C ซึ่งทำหน้าที่เป็นเครื่องมือในการอ้างอิงตามความเป็นจริง มีการใช้งานของ elisp ในภาษาอื่น ๆ (โดยเฉพาะ Javascript) หรือไม่? อะไรคือชุดพื้นฐานที่จำเป็นที่สุดในการปรับใช้ elisp ใหม่อย่างสมบูรณ์? อะไรคือความยากลำบากที่สำคัญในการทำเช่นนั้น (เช่นการกำหนดขอบเขตแบบไดนามิก)
12 elisp 

4
เสร็จสิ้นไม่ชัดเจนเมื่อใส่อักขระ Unicode
ฉันเพิ่งค้นพบC-x 8 RETวิธีแทรกอักขระ Unicode ด้วยชื่อ Unicode หรือรหัสฐานสิบหก ฉันยังไม่ได้จำชื่ออักขระ Unicode ทั้งหมดดังนั้นฉันจึงไม่พบอักขระที่ถูกต้องเสมอไป ตัวอย่างเช่นมีตัวละคร "SNOW CAPPED MOUNTAIN" ถ้าฉันพิมพ์เพียง "MOUNTAIN" ตัวละครนี้จะไม่ปรากฏในรายการความสมบูรณ์ ฉันต้องจำไว้ว่าต้องค้นหาคำว่า "SNOW" เพื่อดูตัวละครนี้โดยเฉพาะในรายการความสำเร็จ ในฐานะที่เป็นคนที่พึ่งพา IDO สำหรับสิ่งใดก็ตามที่เกี่ยวข้องกับการทำให้สมบูรณ์ ido-ubiquitous-modeฉันใช้ ฉันจะใช้การจับคู่เหมือน IDO สำหรับอินพุต Unicode ได้อย่างไร ฉันจะใช้ความสมบูรณ์แบบยืดหยุ่นสำหรับทุกสิ่งได้อย่างไร (ฉันจะโอเคกับการละทิ้งโหมด IDO หากมีสิ่งที่ดีกว่า)

5
จะเข้าใจรหัสการเรียกซ้ำได้อย่างไร
ฉันพบรหัสนี้ในคู่มือที่An Introduction to Programming in Emacs Lispแสดงการเรียกซ้ำด้วยความช่วยเหลือของcondฟังก์ชันเพื่อหาจำนวนของก้อนกรวดตามจำนวนแถวที่ป้อนเช่นถ้าแถว = 2 จากนั้นก้อนกรวดควรเป็น 3 ถ้า 4 แถวก็ควรเป็น 10 ก้อนกรวด ที่นั่น (defun triangle-using-cond (number) (cond ((<= number 0) 0) ((= number 1) 1) ((> number 1) (+ number (triangle-using-cond (1- number)))))) ประเมินถึง 10 หลังจากผ่านการโต้แย้ง 4: (triangle-using-cond 4) คู่มือไม่ได้อธิบายอย่างชัดเจนว่าเกิดอะไรขึ้นในแต่ละขั้นตอนของรหัสตัวอย่างนี้โดยเฉพาะและฉันไม่สามารถทราบได้ว่าการเรียกใช้ซ้ำเกิดขึ้นที่นี่ได้อย่างไร คุณกรุณาช่วยฉันเข้าใจกลไกทีละขั้นตอนว่าเกิดอะไรขึ้นในแต่ละตัวอย่าง?
12 elisp  learning 

2
ฉันสามารถรวมบล็อกรหัสทั่วไปในบล็อกโค้ดสองแบบในโหมดองค์กรได้หรือไม่
ฉันมีorg-modeไฟล์ที่มีสารบัญและบล็อกรหัส Python สองบล็อกเพื่อแยกข้อมูลสรุปที่แตกต่างออกไป ฉันต้องการแบ่งปันค่าคงที่ทั่วไปและฟังก์ชั่นบางอย่างระหว่างโค้ดบล็อกทั้งสองนี้ โดยหลักการแล้วฉันจะทำเช่นนี้โดยแยกรหัสทั่วไปออกเป็นบล็อคโค้ดแยกซึ่งจะถูกรวมและประเมินโดยอัตโนมัติเมื่อใดก็ตามที่บล็อกสองบล็อกอื่นถูกประเมิน ในไวยากรณ์ที่สร้างขึ้นมันจะมีลักษณะดังนี้: #+NAME: init_block #+BEGIN_SRC python ... common constants and functions here ... #+END_SRC #+NAME: summary_1 #+BEGIN_SRC python :prepend init_block ... data-processing code depending on init code goes here ... #+END_SRC #+NAME: summary_2 #+BEGIN_SRC python :prepend init_block ... more processing which also depends on init code …

5
ไฟล์ที่เปิดล่าสุดในโหมด ido
ผมใช้ido-modeแต่สิ่งหนึ่งที่ฉันเกลียดเกี่ยวกับเรื่องนี้คือว่าหลังจากที่C-x C-fฉันไม่สามารถใช้คีย์เพื่อวงจรผ่านไฟล์ที่เพิ่งเปิดในขณะที่มันเคยเป็นเช่นกับup/down iswitchbฉันidoจะตั้งให้ทำงานแบบนี้ได้อย่างไร
12 ido  find-file  cycling 

3
ฆ่าบัฟเฟอร์เมื่อลบเฟรม
เมื่อฉันปิดเฟรมฉันต้องการให้บัฟเฟอร์ของมันถูกฆ่า หากบัฟเฟอร์แสดงในเฟรมอื่นไม่ควรฆ่าบัฟเฟอร์ ไม่ทำอะไรเลยถ้ามีบัฟเฟอร์มากกว่าหนึ่งแสดงในเฟรม เป็นวิธีที่ดีในการตั้งค่านี้คืออะไร?
12 buffers  frames 

2
วิธีการที่เหมาะสมในการให้โปรแกรมภายนอกพร้อมกับแพคเกจ?
ฉันรักษาชุดของ elisp จำนวนมาก (เช่น codesearch, emacs-ycmd, traad) ที่จะได้รับประโยชน์จากความสามารถในการติดตั้งโปรแกรมภายนอกที่พวกเขาใช้ประหยัดเวลาและความพยายามสำหรับผู้ใช้บางคน ตัวอย่างเช่นด้วย codesearch.el มันจะเป็นการดีที่จะสามารถดาวน์โหลดรวบรวมและติดตั้งเครื่องมือ codesearch (เขียนในไปไม่ใช่ elisp) สำหรับผู้ใช้ สิ่งนี้จะลบสิ่งกีดขวางอย่างน้อยหนึ่งข้อสำหรับการใช้แพ็คเกจ มี "แนวปฏิบัติที่ดีที่สุด" สำหรับการทำเช่นนี้หรือไม่? ตัวอย่างเช่นฉันควรวางโปรแกรมภายนอกไว้ที่ไหน หากคุณไม่มีคำแนะนำโดยตรงคุณสามารถส่งต่อฉันไปยังแพ็คเกจใด ๆ ที่ทำสิ่งนี้ได้ (และโดยพื้นฐานแล้วมันทำได้ดีหรือไม่)

2
วิธีจัดการบรรทัดถัดไปในแมโครแป้นพิมพ์
ฉันสร้างแมโครคีย์บอร์ดเพื่อรวมบรรทัดในบัฟเฟอร์โดยใช้: F3 C-n M-x join-line RET F4. มันทำงานได้ดียกเว้นเมื่อบรรทัดยาวเกินไปและเริ่มตัด - ซึ่งทำให้แมโครนี้ขึ้นอยู่กับความกว้างของเฟรม next-lineดูเหมือนจะไม่ไปที่บรรทัดจริงถัดไป แต่ไปที่ส่วน "การตัด" ของบรรทัดปัจจุบัน จะแก้ไขปัญหานั้นได้อย่างไร

3
ป้องกันโหมดองค์กรจากการกลืนตัวแปรไฟล์ท้องถิ่น
บางครั้งการกำหนดตัวแปรโลคัลไฟล์ด้วยความคิดเห็นเช่นต่อไปนี้จะสะดวกซึ่งต้องอยู่ที่ท้ายไฟล์ # Local Variables: # fill-column: 80 # End: อย่างไรก็ตามในบัฟเฟอร์โหมดองค์กรความคิดเห็นนี้ถูกพิจารณาว่าเป็น "ภายใน" พาดหัวสุดท้าย ตัวอย่างเช่นในบัฟเฟอร์ต่อไปนี้ความคิดเห็นจะถูกซ่อนเมื่อใดก็ตามที่ subtrees CหรือBถูกซ่อนอยู่ * A * B ** C # Local Variables: # fill-column: 80 # End: ฉันไม่รังเกียจที่จะซ่อนสิ่งนี้ ปัญหาที่แท้จริงคือความเห็นจะเกิดขึ้นเมื่อใดก็ตามที่ฉันย้ายCทรีย่อยไปที่อื่น ตัวอย่างเช่นถ้าผมเรียกorg-refileบนCหรือถ้าผมย้ายไปรอบ ๆ ด้วยorg-metaup(และชอบ) การแสดงความคิดเห็นจะถูกย้ายไปพร้อมกับทรีย่อยและจากนั้นพวกเขาหยุดการทำงานอย่างเห็นได้ชัด มีวิธีบอกorg-modeให้หยุดทำเช่นนี้หรือไม่?

2
ฉันจะบังคับให้บัฟเฟอร์เฉพาะเปิดในหน้าต่างใหม่ได้อย่างไร
เมื่อคอมมิชชันการเปลี่ยนแปลงใน Magit มันมีประโยชน์ที่จะเปิดมุมมอง diff ขณะที่เพิ่มรายละเอียดเกี่ยวกับการคอมมิท ใน Magit เราเห็น diff ใน*magit ..*บัฟเฟอร์ เมื่อคุณกดปุ่มccในขณะที่เคอร์เซอร์อยู่ในไฟล์Staged Magit คอมมิทบัฟเฟอร์.. COMMIT_EDITMSGจะปรากฏขึ้น โดยค่าเริ่มต้นบัฟเฟอร์ใหม่นี้แทนที่*magit ..*บัฟเฟอร์ที่แสดงการกระทำที่แตกต่าง คำถาม - ฉันจะทำให้.. COMMIT_EDITMSGบัฟเฟอร์เปิดในหน้าต่างใหม่ได้อย่างไร (ใช้หน้าต่างอื่นอีกครั้งหรือสร้างหน้าต่างใหม่หากเฟรมมีเพียง 1 หน้าต่างเพื่อเริ่มต้นด้วย) เพื่อให้ฉันเห็นทั้ง*magit ..*และ.. COMMIT_EDITMSGบัฟเฟอร์ได้อย่างไร
12 buffers  window  magit 

1
เรียกใช้แอปพลิเคชันใน cwd บนรีโมตโฮสต์จากภายใน eshell
ฉันมักจะใช้ Eshell เพื่อเชื่อมต่อกับระบบระยะไกล ในระบบระยะไกลเหล่านั้นบางครั้งฉันต้องการเรียกใช้สคริปต์ในไดเรกทอรีการทำงานปัจจุบัน ใน terminal ปกติฉันจะพิมพ์สิ่งนี้: ./my-script.sh น่าเสียดายที่ภายใน Eshell สิ่งนี้จะไม่ทำงาน: ~ $ cd /remote1:~ /ssh:remote1:/home/rekado $ ./my-script.sh env: /ssh:remote1:/home/rekado/my-script.sh: No such file or directory /ssh:remote1:/home/rekado $ ใช้งานได้เฉพาะถ้าฉันให้เส้นทาง TRAMP ที่สมบูรณ์ไปยังสคริปต์: /ssh:remote1:/home/rekado $ /ssh:remote1:/home/rekado/my-script.sh It works! /ssh:remote1:/home/rekado $ มีวิธีที่จะโน้มน้าวให้ Eshell ขยายตัว.โดยอัตโนมัติหรือไม่ เพื่อเป็นการหลีกเลี่ยงปัญหาปัจจุบันฉันใช้ฟังก์ชั่นที่ถูกผูกไว้กับC-c .ที่แทรกเส้นทางแบบเต็มปัจจุบันในบรรทัดคำสั่ง ฉันชอบที่จะ.ทำตัวตามที่คาดไว้
12 tramp  eshell 

3
ปฏิบัติต่อสัญลักษณ์เป็นคำในโหมด prog
มีคำสั่งจำนวนมากใน Emacs ที่ใช้กับ "คำ" ตัวอย่างเช่นforward-word, kill-word, upcase-word, mark-word, transpose-wordsฯลฯ ความหมายของ "คำว่า" ดูเหมือนว่าจะแตกต่างกันเล็กน้อยระหว่างคำสั่ง ตัวอย่างเช่นforward-wordจะหยุดที่ขีดเส้นใต้ภายในคำ (เช่นfoo_bar) แต่mark-wordจะไม่หยุดที่ขีดล่าง เป็นไปได้หรือไม่ที่จะเปลี่ยนคำจำกัดความของ "คำว่า" เมื่อฉันอยู่ในโหมด prog เพื่อที่ Emacs จะใช้ขอบเขตคำที่เหมาะสมสำหรับไวยากรณ์ของภาษาปัจจุบันหรือไม่ เมื่อฉันอยู่ในc-modeฉันต้องการforward-wordข้ามขีดล่างและเมื่อฉันอยู่ในlisp-modeฉันต้องการforward-wordข้ามทั้งยัติภังค์และขีดล่าง ฯลฯ

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