Emacs: выделите текущую строку, подчеркнув ее

В vim мы можем использовать "set cursorline" в файле dotvim, чтобы включить его. Есть ли способ сделать это в emacs?

Ответы

Ответ 1

В ваших .emacs настройте лицо для hl-line-mode, с чем-то вроде:

(global-hl-line-mode 1)
(set-face-attribute hl-line-face nil :underline t)

hl-line-face - это переменная, которая сохраняет имя face hl-line-mode для отображения текущей строки. Вы можете настроить :foreground :background и кучу других атрибутов по своему вкусу. Проверьте документацию здесь.

global-hl-line-mode включает выделение текущей строки во всех буферах. Если вы просто хотите его в некоторых буферах, включите его с помощью M-x hl-line-mode.

Ответ 2

Есть хорошая запись в блоге по этой теме: M-x all-things-emacs

Следующий код (введите wit M-: или в ~/.emacs) использует код RGB # 222 в качестве цвета фона (если вы находитесь в режиме с 256 цветами!) и подчеркивает шрифт текущей строки. Отмена цвета переднего плана использует цвет по умолчанию, это, например, сохраняет цвета С++ на выделенной строке.

(global-hl-line-mode 1)
(set-face-background 'highlight "#222")
(set-face-foreground 'highlight nil)
(set-face-underline-p 'highlight t)

Вы можете проверить, нужно ли вам изменить highlight или (afaik постарше) hl-line с помощью M-x и:

describe-face <RET> highlight
describe-face <RET> hl-line

Эта команда показывает все настройки грани шрифта, используемые для выделения текущей строки. Вы должны получить такой вывод:

Face: highlight (sample) (customize this face)
Documentation:
Basic face for highlighting.

        Family: unspecified
       Foundry: unspecified
         Width: unspecified
        Height: unspecified
        Weight: unspecified
         Slant: unspecified
    Foreground: unspecified
    Background: #222
     Underline: t
      Overline: unspecified
Strike-through: unspecified
           Box: unspecified
       Inverse: unspecified
       Stipple: unspecified
          Font: unspecified
       Fontset: unspecified
       Inherit: unspecified

Ответ 3

Я не думаю, что там встроен точный эквивалент. Вы можете использовать hl-line-режим, чтобы выделить текущую строку, а настройка этого режима позволяет вам выделять подсветку, а не цвет фона по умолчанию - но подчеркивание, которое вы получаете, останавливается в конце текста в строке, а не продолжает к краю окна.