คำถามติดแท็ก mode-line

บรรทัดโหมดเป็นข้อมูลสรุปที่เป็นประโยชน์เกี่ยวกับบัฟเฟอร์ที่แสดงในหน้าต่างรวมถึงชื่อและโหมดปัจจุบัน จะอยู่ที่ด้านล่างของหน้าต่าง Emacs ทุกบานนอกเหนือจากหน้าต่าง MiniBuffer

4
ฉันจะได้รับบรรทัดโหมดนักเล่นที่ใช้สีและสามเหลี่ยมทึบได้อย่างไร
ผู้คนโพสต์ภาพหน้าจอเป็นครั้งคราวด้วยโมเดลที่มีสีและรูปสามเหลี่ยมทึบ: ฉันจะทำซ้ำเอฟเฟกต์นี้ได้อย่างไร

8
ซ่อนรายการโหมดย่อยในโหมดบรรทัด
ฉันใช้โหมดรองค่อนข้างน้อยและปกติฉันรู้ว่าโหมดรองเปิดใช้งานในโหมดหลักทุกโหมด C-h v minor-mode-listถ้าผมอยากจะดูรายการเต็มรูปแบบฉันสามารถเรียกใช้ ในขณะเดียวกันบรรทัดโหมดของฉันจะถูกอุดตันจริงๆดังนั้นเมื่อฉันแยกเฟรมในแนวตั้งบางครั้งฉันไม่สามารถอ่านจุดสิ้นสุดของโหมดบรรทัดได้ คำถามที่เกิดขึ้นจริง: วิธีการปิดการแสดงรายการโหมดย่อยในบรรทัดโหมด? ตัวอย่างเช่นตอนนี้อาจมีลักษณะเช่นนี้: -:--- main.c All (7,12) (C/l FlyC SScr Abbrev Fill) [main] 16:19 0.45 ฉันต้องการให้กระชับยิ่งขึ้น: -:--- main.c All (7,12) (C/l) [main] 16:19

1
ส่วนใดของรหัสใน Emacs ที่ทำให้ "หมายเลขบรรทัดโหมด" พิมพ์ "??" เป็นหมายเลขบรรทัดในบัฟเฟอร์ที่มีเส้นยาว
ฉันใช้line-number-modeเพื่อมีตัวบ่งชี้ของบรรทัดปัจจุบันใน modeline ของฉัน แต่สำหรับไฟล์ขนาดใหญ่หรือมากกว่าไฟล์ที่มีความยาวมันเริ่มแสดงเครื่องหมายคำถามสองตัวแทนที่จะเป็นหมายเลขบรรทัด ผมเคยขุดบิตและพบว่าในขณะที่line-number-modeถูกกำหนดไว้ในsimple.elตัวแปรที่ปรับแต่งได้ (และอาจจะตรรกะทั้งหมดที่เกี่ยวข้อง) xdisp.cที่กำหนดไว้ใน การเปลี่ยนline-number-display-widthตัวแปรเป็นจำนวนสูงโดยพลการอาจแก้ไขได้ แต่ฉันสนใจในส่วนของรหัสและตรรกะที่ทำให้มันพิมพ์เครื่องหมายคำถามสองข้อ มันจะมีประโยชน์มากถ้ามีใครในพวกคุณพบฉัน

2
แสดงรายการคำศัพท์ที่ด้านล่างของเฟรมหรือไม่
ฉันต้องการแสดงคำศัพท์ 3 รายการในบรรทัดแยกกันตามแนวนอนที่ด้านล่าง (แม้ว่าส่วนบนก็ใช้ได้เช่นกัน) ของ emacs ทุกเฟรมที่ฉันเปิด ฉันคิดว่า 6 วิธีในการทำเช่นนี้และพวกเขาทั้งหมดมีปัญหา: ความคิดแรกของฉันคือการเพิ่มบรรทัดลงในบรรทัดโหมดของฉัน แต่ AFAICT คุณไม่สามารถใช้อักขระบรรทัดใหม่ในบรรทัดโหมดได้เพียงแค่ได้รับการแปลงเป็น "^ J" ความคิดที่สองของฉันคือการมีบรรทัดที่ด้านบนของหน้าจอและใช้บรรทัดส่วนหัว แต่ไม่รองรับอักขระขึ้นบรรทัดใหม่ ฉันสามารถแสดงโอเวอร์เลย์ในช่วง 3 บรรทัดสุดท้ายของหน้าต่างได้ แต่การทำให้สิ่งนี้ดูแข็งแกร่ง - การเลื่อนจะต้องถูกกระตุ้นเมื่อจุดถึงการวางซ้อนมากกว่าจุดสิ้นสุดของหน้าต่างจริงและฉันต้องเปลี่ยนตำแหน่งใหม่ตลอดเวลา การซ้อนทับเนื่องจากการวางซ้อนอยู่ในพื้นที่ข้อความไม่ใช่พื้นที่หน้าต่าง ฉันสามารถลองทำ windows เฉพาะที่ด้านล่างของเฟรม ฉันได้ลองโค้ดนี้แล้ว แต่มันก็ไม่แข็งแรงเหมือนกันดูเหมือนว่ามันจะทำงานไม่ถูกต้องเมื่อเฟรมมีหน้าต่างที่แยกออกไปแล้วและฉันต้องรีบูต Cx, 1 ถึงเวอร์ชันลบที่กำหนดเองซึ่งไม่สนใจ หน้าต่างพิเศษของฉันและฉันแน่ใจว่ามีมุมอื่น ๆ นอกจากนี้เมื่อหน้าต่างความช่วยเหลือปรากฏขึ้นในขณะนี้หน้าต่างจะเปิดขึ้นในแนวตั้งเพราะคิดว่ามีการแบ่งตามแนวนอนอยู่แล้ว (ซึ่งในทางเทคนิคแล้วมี แต่จะแสดงหน้าต่างบรรทัดเดียวเท่านั้น) ฉันสามารถมีเฟรมเฉพาะสำหรับสิ่งนี้ได้ แต่จากนั้น config ของฉันจะไม่ทำงานในโหมดเทอร์มินัลและฉันต้องสคริปต์ตัวจัดการหน้าต่างของฉันเพื่อจัดการกับมันที่ด้านล่างของหน้าจอทำให้ไม่สามารถเลือกได้ ฯลฯ ฉันสามารถแทรกข้อความ 3 บรรทัดลงใน minibuffer โดยตรง ตอนนี้ฉันทำงานได้บางส่วนฉันสามารถเพิ่มรถมินิบัสเพื่อรองรับ 3 …

2
วิธีที่เร็วกว่าในการรับ 'หมายเลขบรรทัดที่ตำแหน่ง pos' ในบัฟเฟอร์ขนาดใหญ่
ฟังก์ชั่นline-number-at-pos(เมื่อทำซ้ำประมาณ 50 ครั้ง) ทำให้เกิดการชะลอตัวลงอย่างเห็นได้ชัดในบัฟเฟอร์กึ่งใหญ่เช่น 50,000 บรรทัด - เมื่อจุดใกล้ถึงจุดสิ้นสุดของบัฟเฟอร์ เมื่อชะลอความเร็วลงฉันหมายถึงผลรวมทั้งหมดประมาณ 1.35 วินาที แทนที่จะใช้elispfunciton 100% เพื่อนับจำนวนบรรทัดและข้ามส่วนบนสุดของบัฟเฟอร์ฉันสนใจวิธีไฮบริดที่แตะเข้าไปในความสามารถ C ในตัวที่รับผิดชอบต่อหมายเลขบรรทัดที่ปรากฏบนโหมดบรรทัด หมายเลขบรรทัดที่ปรากฏบนโหมดบรรทัดเกิดขึ้นที่ความเร็วแสงโดยไม่คำนึงถึงขนาดของบัฟเฟอร์ นี่คือฟังก์ชั่นทดสอบ: (defmacro measure-time (&rest body) "Measure the time it takes to evaluate BODY. http://lists.gnu.org/archive/html/help-gnu-emacs/2008-06/msg00087.html" `(let ((time (current-time))) ,@body (message "%.06f" (float-time (time-since time))))) (measure-time (let* ( line-numbers (window-start (window-start)) (window-end (window-end))) (save-excursion (goto-char …

2
ฉันจะกำหนดขนาดแบบอักษรที่แตกต่างกันสำหรับบัฟเฟอร์และโหมดบรรทัดได้อย่างไร
ฉันมีบรรทัดนี้ในไฟล์ init.el ของฉันเพื่อกำหนดขนาดตัวอักษรในทุกเฟรม: (push '(font . "DejaVu Sans Mono-10") default-frame-alist) มันใช้งานได้ แต่ฉันต้องการให้ตัวอักษรที่ใหญ่กว่าในบัฟเฟอร์ทั้งหมดในขณะที่รักษาตัวที่เล็กกว่าสำหรับบรรทัดโหมด (ดังนั้นมันจึงสามารถพอดีกับข้อมูลเพิ่มเติมและทำให้เสียสมาธิน้อยลง) แนวคิดคือการตั้งค่านี้โดยอัตโนมัติโดยไม่ต้องเปลี่ยนขนาดตัวอักษรด้วย Cx C- + สำหรับทุกบัฟเฟอร์ที่เปิดอยู่ ฉันใช้ Emacs 25.0.50.1 เรียบเรียงจากลำตัวบนระบบ GNU / Linux แก้ไข: เพิ่งเพิ่มคำตอบที่แสดงว่าสามารถทำได้

4
สร้างเฟรมใหม่ด้วยโหมดบรรทัดเท่านั้น
ฉันต้องการสร้างเฟรมใหม่ที่ไม่มีอะไรนอกจากโหมดบรรทัด โดยเฉพาะอย่างยิ่งไม่ใช่บัฟเฟอร์ไฟล์ ทำไมฉันต้องการสิ่งนี้ ฉันใช้การตอกบัตรของโหมดองค์กรเพื่อกำหนดเวลาทำงาน Org-mode แสดงตัวจับเวลาสำหรับงานปัจจุบันที่ฉันกำลังทำงานในโหมดบรรทัดและอัปเดตตัวจับเวลาแบบเรียลไทม์ ฉันใช้แอพอื่นนอกเหนือจาก Emacs ดังนั้นเมื่อฉันเปลี่ยนมาใช้ (เช่นเมื่อใช้เบราว์เซอร์หรือเทอร์มินัล) ฉันยังต้องการดูตัวจับเวลาที่กำลังทำงานอยู่ ฉันคิดว่าฉันสามารถสร้างเฟรมใหม่ได้ แต่เมื่อฉันคลิกที่ตัวจับเวลาในโหมดบรรทัดไฟล์. org จะถูกเปิดในเฟรมใหม่ (ซึ่งถูกปรับขนาดแล้วเพื่อแสดงเฉพาะโหมดบรรทัด) แทนที่จะกระโดดกลับไปที่ มันอยู่ในเฟรมแรก นี่คือลักษณะบรรทัดโหมดของฉัน (แถบสีฟ้า) - นั่นคือทั้งหมดที่ฉันต้องการในเฟรมใหม่: (ในที่สุดฉันจะต้องหาวิธีทำให้เฟรมใหม่ปรากฏอยู่ด้านบนเสมอ แต่นั่นอยู่นอกขอบเขตของคำถามนี้) ฉันใช้ OS X หากมีความเกี่ยวข้อง
13 mode-line  osx 

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

2
ฉันสามารถใช้รูปภาพในโมเดลไฟแช็กของฉันได้หรือไม่?
Modeline ของฉันรกรุงรัง ฉันสามารถทำให้มันแสดงรูปภาพแทนชื่อโหมดได้หรือไม่? ฉันสามารถใช้ unicode Emoji (เช่น🐍สำหรับ Python หรือ🐓สำหรับ Coq) ได้ แต่เครื่องบางเครื่องที่ใช้ Emacs config ของฉันไม่ได้ติดตั้งฟอนต์ที่ถูกต้องไว้ล่วงหน้า โหมดที่ฉันกำลังเขียนดังนั้นฉันไม่สามารถคาดหวังให้ผู้ใช้ตั้งค่าแบบอักษรที่ถูกต้องได้) ฉันพยายามเพิ่ม:imageคุณสมบัติการแสดงผลลงใน modeline ที่เบากว่าของของเล่นรองโหมด แต่ไม่มีอะไรปรากฏใน modeline: (define-minor-mode my/test-mode "Test mode." :lighter (propertize " 🐓" 'display '(image :type imagemagick :file "/home/clement/.emacs.d/rooster.png")))

5
วิธีการนับตัวอักษรในบัฟเฟอร์รวมถึงช่องว่าง?
ฉันต้องดูว่าตัวละครมีข้อความเท่าไหร่ในขณะที่ฉันพิมพ์ ฉันพบหน้าของ Emacs Wiki: จำนวนคำและมีวิธีแก้ปัญหาที่ใกล้เคียงกับสิ่งที่ฉันต้องการ: ฉันใช้คำตอบที่สองจากหน้านี้ (แสดงจำนวนคำในโหมดบรรทัด) เพราะมันแสดงจำนวน ตัวละครเช่นกัน แต่มันไม่นับช่องว่าง มีวิธีแก้ไขปัญหาใดบ้างที่จะแสดงจำนวนตัวอักษรรวมถึงช่องว่างในโหมดบรรทัด เป็นการดีที่จะกำหนดจำนวนอักขระเป้าหมาย (แต่ไม่จำเป็น)
12 mode-line 


1
แสดงบางอย่างในบรรทัดโหมดที่ใช้งานแทนทุกบรรทัดโหมด
ฉันตั้งค่าตัวบ่งชี้ org-timer ในบรรทัดโหมดด้วยสิ่งนี้ (setq-default mode-line-format (quote ( ;; org-timer (:eval (unless (not org-timer-countdown-timer) (propertize (let* ((rtime (decode-time (time-subtract (timer--time org-timer-countdown-timer) (current-time)))) (rmins (nth 1 rtime)) (rsecs (nth 0 rtime))) (format "🕔 %d:%d" rmins rsecs)) 'face '(:foreground "cyan" :weight bold) 'help-echo "org-timer"))) ))) ฉันต้องการให้ตัวบ่งชี้ org-timer นี้แสดงในบรรทัดโหมดแอ็คทีฟเท่านั้นแทนที่จะเป็นโหมดโหมดทั้งหมด ทำอย่างไร?
10 mode-line 

1
มีมากกว่าหนึ่งบรรทัดในโหมดบรรทัดหรือไม่
ฉันต้องการให้ modeline แสดงข้อมูลทั้งหมดที่ไม่ได้อยู่ในบรรทัดเดียว แต่เป็นสอง - ตัวอย่างแรกสำหรับข้อมูลเคอร์เซอร์, บัฟเฟอร์, ไฟล์, git และ flycheck และในบรรทัดที่สอง - ข้อมูลโหมด (โหมดหลักและรอง) เป็นไปได้ไหม? ฉัน googled bindings.el และ emacs ซอร์สโค้ด C และไม่โชคดีที่พบว่าหมายเลขบรรทัดนี้สำหรับ modeline อาจเป็นไปได้ที่จะมีการเปลี่ยนแปลงใครสามารถช่วยได้บ้าง ขอบคุณ.
10 mode-line 

2
ปรับขนาดตัวอักษรในโหมดบรรทัดและ minibuffer ชั่วคราว?
เมื่อทำงานกับผู้อื่นรอบ ๆ จอภาพที่แชร์หรือผ่านการแชร์หน้าจอ (เช่น Google Hangout) ฉันมักจะใช้text-scale-adjust( C-x C-+) เพื่อให้ผู้อื่นอ่านหน้าจอของฉันได้ง่ายขึ้น ฉันชอบที่จะเพิ่มขนาดตัวอักษรของโหมดบรรทัดและมินิบัสเซอร์ในเฟรมที่เลือก ความสามารถดังกล่าวมีอยู่แล้ว? ถ้าไม่ฉันอาจไขปริศนาว่าจะเขียนเองอย่างไร ... ในที่สุด

1
ฉันสามารถแสดงนาฬิกาในบริเวณที่มีเสียงสะท้อนได้หรือไม่?
เวลาส่วนใหญ่ของฉันสะท้อนอยู่ในขณะที่ modeline ของแต่ละหน้าต่างของฉันแสดงข้อมูลซ้ำซ้อนมากมาย (เวลาปัจจุบันโหลดระบบและข้อมูลอื่น ๆ ที่ไม่ขึ้นกับบัฟเฟอร์) ฉันสามารถแสดงเวลาปัจจุบัน (จัดชิดขวา) ในพื้นที่เสียงสะท้อน (ทุกครั้งที่ไม่ได้ใช้งานได้หรือไม่)

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