โหมดหมายเลขบรรทัดไฮบริดใน emacs?


11

เป็นไปได้ไหมที่จะแสดงจำนวนสัมบูรณ์ของบรรทัดปัจจุบันแทนที่จะเป็น "0" เมื่ออยู่ในโหมดหมายเลขบรรทัดสัมพัทธ์? บางครั้งสิ่งนี้เรียกว่า "โหมดหมายเลขบรรทัดไฮบริด"

แบบนี้:

 7                                                                                                      
  6          this.oscs[i].oscillator.start();                                                            
  5        }                                                                                             
  4                                                                                                      
  3        this.bindController();                                                                        
  2      };                                                                                              
  1                                                                                                      
252      factory.stop = function () {  <- current line number shows                                                                                       
  1        console.log('theremin: now in stop 2');                                                       
  2        this.leapController.disconnect();                                                             
  3        //this.leapController.removeListener('frame', factory.ctrlFrameHandler);                      
  4        //this.leapController.removeListener('frame', this.ctrlFrameHandler);                         
  5        this.leapController.removeListener('frame', this.leapController.listeners('frame')[0]); 

นี่คือวิธีที่คุณทำมันในกลุ่ม

ฉันใช้ความชั่วร้ายและเปิดใช้งานโหมดหมายเลขบรรทัดสัมพันธ์ใน. emacs ของฉันดังนี้:

(linum-mode)
(linum-relative-global-mode)

ฉันไม่เห็นแพคเกจใด ๆ สำหรับสิ่งนี้หรือการปรับแต่งใด ๆ ที่ใช้ได้ในแพ็คเกจที่มีอยู่ ฉันค่อนข้างคุ้นเคยกับ elisp ดังนั้นจึงอาจเป็นไปได้ที่จะหาวิธีขอรหัสที่มีอยู่เช่นคำแนะนำ แต่ฉันก็ควรหลีกเลี่ยงเส้นทางนั้นถ้าเป็นไปได้

ขอบคุณมาก.


linum-relative-global-modeให้บริการโดยevil?
phils

ไม่มันเป็นส่วนหนึ่งของแพ็คเกจ emacs มาตรฐาน 'linenum-relative' การทำงานที่ชั่วร้ายอาจไม่มีส่วนเกี่ยวข้องกับคำถามนี้นอกจากความจริงที่ว่าหมายเลขบรรทัดสัมพัทธ์มีแนวโน้มที่จะเป็นประโยชน์กับ 'ผู้ใช้ vi' เช่นคนที่ทำงานชั่วร้าย ฉันแค่คิดว่าฉันจะพูดถึงมันในกรณีที่มันเกี่ยวข้องอย่างใด
vt5491

ไม่มีแพ็คเกจดังกล่าว (หรือ "linum-relative") ใน repo มาตรฐานและไม่ใช่ไลบรารี่เริ่มต้น คุณอาจหมายถึงหนึ่งในแพ็คเกจ repos ที่ไม่ได้มาตรฐานใช่หรือไม่ คุณควรระบุเกี่ยวกับไลบรารีที่ไม่ได้มาตรฐานที่คุณอ้างถึงเสมอ
phils

github.com/coldnew/linum-relative โดย 'มาตรฐาน' ฉันไม่ได้ตั้งใจจะบอกเป็นส่วนหนึ่งของฐาน emacs แต่เป็นแค่ "มาตรฐาน" เช่น "ธรรมดา" แพ็คเกจภายใต้เมลปา และฉันก็ใช่ฉันสะกดคำผิด - มันเป็น 'linum-relative' ไม่ใช่ 'linenum-relative' ขอโทษสำหรับความสับสน.
vt5491

FWIW, Emacs 26 นำเสนอหมายเลขบรรทัดดั้งเดิม (อ่าน: เร็ว) ซึ่งสามารถเป็นไฮบริดได้หากคุณตั้งค่าdisplay-line-numbersเป็นrelativeและdisplay-line-numbers-current-absoluteไปที่t(ค่าเริ่มต้น)
บาซิล

คำตอบ:


10

คุณสามารถทำให้หมายเลขบรรทัดปัจจุบันแสดงแทน "0" โดยการปรับแต่งlinum-relative-current-symbolตัวแปร

คุณสามารถเปลี่ยนตัวแปรนั้นได้หลายวิธี

  • Mx Customize-group RET linum-ญาติ RET

    จากนั้นปรับแต่งตัวแปร "สัญลักษณ์สัมพัทธ์ปัจจุบันของ Linum" (ซึ่งเป็นค่าเริ่มต้น0) หากคุณกดลิงค์ "เพิ่มเติม" ใต้คำอธิบายทั้งหมดของตัวแปรจะอ่าน:

    สัญลักษณ์ที่คุณต้องการแสดงในบรรทัดปัจจุบันโดยค่าเริ่มต้นคือ 0

    คุณสามารถใช้สตริงใด ๆ เช่น "->" หากตัวแปรนี้เป็นสตริงว่าง linum-relative จะแสดงหมายเลขบรรทัดจริงที่บรรทัดปัจจุบัน

    ดังนั้นตั้งค่าเป็นสตริงว่างเปล่าเพียงแค่ลบ0และกด "Apply and Save"

  • อีกวิธีคือเพิ่มด้านล่างลงใน emacs ของคุณและทำการประเมิน:

    (setq linum-relative-current-symbol "")

-1

ฉันกำลังใช้ spacemacs และM-x linum-relative-modeทำสิ่งนี้อย่างแน่นอน

คุณยังสามารถเพิ่ม:

(setq-default dotspacemacs-line-numbers 'relative)

กับdotspacemacs/user-configฟังก์ชันใน.spacemacsการตั้งค่าหมายเลขบรรทัดในสไตล์นี้อย่างถาวร

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