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]); 

这是在vim中执行操作的方法

我快疯了,并在.emacs中激活相对行号模式,如下所示:

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

我没有看到任何与此相关的软件包,也没有在现有软件包中对其进行任何自定义。我对elisp有点熟悉,因此也许可以弄清楚如何通过建议来钩住现有代码,但我宁愿避免采用这种方式。

非常感谢。


linum-relative-global-mode由提供evil
phils

不,它是标准emacs软件包“ linenum-relative”的一部分。除相对行号最可能对“ vi用户”(即“行恶者”)有用的事实外,“行恶”可能与该问题无关。我只是以为我提到了它,以防它以某种方式相关。
vt5491 '01

标准存储库中没有这样的软件包(也不是“ linum-relative”),也不是默认库。您是否可能是指非标准包装回购之一?您应该始终对要引用的任何非标准库都保持特定的态度。
菲利普斯,2016年

github.com/coldnew/linum-relative。“标准”并不是要暗示emacs基础的一部分,而只是意味着melpa下的一个“标准”,例如“普通”软件包。我是的,我确实拼错了它-它是“ linum-relative”而不是“ linenum-relative”。对困惑感到抱歉。
vt5491 '01

FWIW,Emacs的26带来的本机(阅读:快速)的行号,可以是混合动力,如果你设置display-line-numbersrelativedisplay-line-numbers-current-absolutet(默认值)。
罗勒

Answers:


10

您可以通过自定义linum-relative-current-symbol变量来显示当前行号而不是“ 0” 。

您可以通过多种方式之一来更改该变量。

  • MX定制组RET相对于RET

    在此处,自定义“ Linum相对当前符号”变量(其默认值为0)。如果您点击下面的“更多”链接,则该变量的完整说明将为:

    您要在当前行显示的符号,默认情况下为0。

    您可以使用任何字符串,例如“->”。如果此变量为空字符串,则linum-relative将在当前行显示实际行号。

    因此,将该值设置为空字符串,只需将其删除0并单击“应用并保存”即可。

  • 另一种方法是将以下内容添加到您的emacs配置中并对其进行评估:

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

-1

我正在运行spacemacs并M-x linum-relative-mode完全做到这一点。

您还可以添加:

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

dotspacemacs/user-config功能.spacemacs以永久设置这种样式的行号。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.