Выключить визуализацию Emacs Whitespace-mode "Long Line"
Я лично сохраняю все строки под 80 символами, но я также работаю над проектами в командах, где другим программистам не нужна длина строки.
Мне нравится использовать режим whitespace-mode, но визуализация длинной строки действительно раздражает, когда я работаю над проектами, где я не должен вмешиваться в длинные строки. Кажется, должно быть легко отключить визуализацию длинной линии --- я нажал m-x global-whitespace-toggle-options l
, а затем могу нажать m-x global-whitespace-toggel-options ?
, чтобы подтвердить, что "длинная визуализация" отключена. Но длинные строки все еще выделены. Я убиваю буферы и перезагружаю их, и подсветка все еще там. Я определенно использую глобальный, а не локальный, пробельный режим.
Почему я не могу отключить визуализацию длинной строки?
Ответы
Ответ 1
В последний раз, когда я настраивал whitespace-mode
, я заметил, что мои изменения в настройках не повлияли на уже существующие буферы; попробуйте воссоздать буфер или уйти и снова войти в систему whitespace-mode
. Если вы еще не знаете, вы можете использовать M-x customize-group whitespace
, чтобы полностью отключить эту конкретную опцию, а не выполнять ее вручную.
Изменить: В частности, вы хотите настроить переменную whitespace-style
. Это позволяет включать и отключать отдельные стили. В этом случае вы должны отключить те, которые обозначены строками "Линия" и "Лицевая линия", только часть с перекрытием ". Первый изменяет лицо всей линии, когда он слишком длинный, а последний только меняет лицо части, которая проходит за порог.
(Другие параметры в этой группе определяют грани, которые whitespace-mode
будет использовать для выделения стилей, которые вы включили, регулярных выражений, которые он использует для определения определенных ситуаций и т.д., но обычно вас беспокоит только whitespace-style
).
Ответ 2
Установите столбец с пробелами в строку с более высоким значением (по умолчанию - 80), поэтому выделение длинных строк не срабатывает:
(setq whitespace-line-column 250)
Ответ 3
Я предполагаю, что у вас уже есть whitespace-mode
, активированный где-то в вашем init.el
или аналогичном. Если это так, вы можете адаптировать duma comment выше, а также
-
Отредактируйте elisp, который устанавливает whitespace-style
, чтобы удалить lines-tail
. Например, Emacs Prelude устанавливает
(setq whitespace-style '(face tabs empty trailing lines-tail))
Просто измените это на
(setq whitespace-style '(face tabs empty trailing))
-
Если вы не хотите напрямую редактировать этот elisp, но скорее переопределите его позже своим собственным кодом, сделайте что-то вроде
(setq whitespace-style (delete 'lines-tail whitespace-style))
К сожалению, если запустить Prelude с автозагруженными буферами (используя что-то вроде Emacs Desktop), исходная настройка будет иметь приоритет: для каждого буфер, на который вы хотите видеть whitespace-style
, отображаемый по указанию, вы должны [1]
- убить буфер
- повторно открыть буфер
[1]: Примечание для OP: если есть другой способ перезагрузить буфер, отредактируйте или прокомментируйте этот ответ. Я надеялся найти что-то вроде M-x reload-buffer
, но не вижу ничего подобного C-h a buffer
.