Отключить hl-line в Emacs при использовании Emacs Starter Kit?
Эта проблема убивает мою производительность.
Стартовый комплект Emacs автоматически включает hl-линию, которая выделяет текущую строку. Это делает меня неспособным увидеть подсветку в текущей строке.
Я попытался установить (global-hl-line-mode nil)
и (hl-line-mode nil)
глобально и добавил к крючкам режима, таким как clojure -mode-hook, но он все еще отображается.
Какой elisp мне нужно отключить эту функцию?
Ответы
Ответ 1
hl-line-режим включается следующей строкой в файле startter-kit-defuns.el:
(add-hook 'coding-hook 'turn-on-hl-line-mode)
Вы можете либо прокомментировать эту строку, либо если вы не хотите прикасаться к файлам стартового набора, вы можете поместить следующее в свой личный файл инициализации в ~/.emacs.d/{username}.el:
(remove-hook 'coding-hook 'turn-on-hl-line-mode)
Ответ 2
В стартовом комплекте 2 соответствующий крючок для удаления:
(remove-hook 'prog-mode-hook 'esk-turn-on-hl-line-mode)
Вам нужно добавить это в свою собственную конфигурацию после инициализации стартового набора.
Ответ 3
Я знаю, что это старый вопрос, но у меня недавно была такая же проблема (с использованием emacs 24) и выяснилось, что ее также можно решить, просто настроив грань "hl-line":
- Сделайте "M-x customize-face" и введите "hl-line".
- Настроить по своему вкусу и "сохранить для будущих сеансов".
Если вы отключите все атрибуты, вы фактически отключите эту функцию, по крайней мере, с точки зрения пользователя. Для меня поворот цветной подсветки и просто установка "Вес" на "тяжелую" трансформированную hl-линию от раздражения до ненавязчивой, умеренно полезной функции.
Ответ 4
Постарайтесь разместить (global-hl-line-mode nil)
в нижней части вашего .emacs
, чтобы никакая другая команда не перезаписывала его.
Ответ 5
Я не думаю, что ваша проблема возникла из ESK - она не включает hl-line-режим. Если бы это было так, вы должны были бы иметь строку, похожую на (global-hl-line-mode t)
. Я бы предложил просто найти эту строку в вашей конфигурации и удалить ее, если вы ее найдете. Существуют и другие режимы подсветки. ESK автоматически устанавливает idle-highlight из ELPA - возможно, это то, что вы имеете в виду. Вы можете удалить его, удалив его из этого фрагмента кода в файле startter-kit-elpa.el:
(defvar starter-kit-packages (list 'idle-highlight
'ruby-mode
'inf-ruby
'css-mode
'yaml-mode
'find-file-in-project
'magit
'gist)
Вы также должны удалить загруженный пакет из папки ELPA и перезапустить Emacs.
Ответ 6
Если вы используете ESK, лучшим местом для размещения собственных настроек является не .emacs, а .emacs.d/{имя пользователя}.el или .emacs.d/{имя пользователя}/{имя пользователя}.el.
Ответ 7
Вы спросили, как отключить hl-line-режим, но вы сказали, что хотите сделать это, потому что hl-line-режим скрывает стандартную подсветку синтаксиса, которую вы предпочитаете видеть. Что ж, что, если бы я сказал вам, что возможно иметь как выделенную линию, так и подсветку синтаксиса? Попробуйте следующее:
;; Change the :background setting to a value that is only very subtly
;; lighter than the default bg color.
(set-face-attribute 'hl-line nil
:background "#3d4753"
:foreground nil
:inherit t)
Конечным результатом является выделенная линия, которая имеет очень красиво тонкий эффект подсветки в фоновом режиме и сохраняет все ценное синтаксическое выделение, присутствующее на переднем плане. Если вы тщательно выберете цвет фона, у вас не возникнут проблемы с конфликтами чтения из цветов fg/bg (я имею в виду, если вы выберете ярко контрастный цвет линии, то цвета подсветки синтаксиса будут сталкиваться и быть трудными для чтения, поэтому, выбрав цвет, который только очень тонко отличается, вы все равно можете видеть его, не беспокоясь о цветах fg, которые сталкиваются).