гибридный режим номера строки в 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, поэтому, возможно, можно выяснить, как перехватить существующий код, например, с советами, но я бы предпочел избегать этого пути, если это возможно.

Огромное спасибо.

vt5491
источник
linum-relative-global-modeпредоставляется evil?
Филс
нет, это часть стандартного пакета emacs 'linenum -lative'. Запуск зла, вероятно, не имеет ничего общего с этим вопросом, за исключением того факта, что относительные номера строк, скорее всего, будут полезны для «пользователей vi», то есть людей, управляющих злом. Я просто подумал, что упомяну это, если это как-то актуально.
vt5491
Нет такого пакета (ни «linum -lative») в стандартном репо, и не библиотека по умолчанию. Возможно, вы имели в виду одно из нестандартных репозиториев? Вы должны всегда быть конкретными относительно любых нестандартных библиотек, на которые вы ссылаетесь.
Филс
github.com/coldnew/linum-relative . Под «стандартным» я подразумевал не часть базы emacs, а просто «стандартный», например, «обычный» пакет под melpa. И я да, я сделал это неправильно - это «относительный линум», а не «относительный ленум». Извините за путаницу.
vt5491
FWIW, Emacs 26 приносит родную (читайте: быстро) нумерацию строк, которая может быть гибридом , если вы установите display-line-numbersв relativeи display-line-numbers-current-absoluteк t(по умолчанию).
Василий

Ответы:

10

Вы можете настроить отображение текущего номера строки вместо «0», настроив linum-relative-current-symbolпеременную.

Вы можете изменить эту переменную одним из нескольких способов.

  • Mx настроить группу RET Linum-относительный RET

    Оттуда настройте переменную «Linum Relative Current Symbol» (значение по умолчанию - 0). Если вы нажмете на ссылку «Еще», расположенную под ней, полное описание переменной будет выглядеть так:

    Символ, который вы хотите отобразить в текущей строке, по умолчанию это 0.

    Вы можете использовать любую строку, например "->". Если эта переменная является пустой строкой, linum -lative будет отображать реальный номер строки в текущей строке.

    Итак, установите это значение в пустую строку, просто удалите его 0и нажмите «Применить и сохранить».

  • Другой способ - добавить ниже в ваш конфиг emacs и оценить его:

    (setq linum-relative-current-symbol "")
Каушал Моди
источник
-1

Я использую spacemacs и делаю M-x linum-relative-modeэто точно.

Вы также можете добавить:

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

в dotspacemacs/user-configфункцию, .spacemacsчтобы установить номера строк в этом стиле навсегда.

Nico
источник