Подтвердить что ты не робот

Выключить визуализацию Emacs Whitespace-mode "Long Line"

Я лично сохраняю все строки под 80 символами, но я также работаю над проектами в командах, где другим программистам не нужна длина строки.

Мне нравится использовать режим whitespace-mode, но визуализация длинной строки действительно раздражает, когда я работаю над проектами, где я не должен вмешиваться в длинные строки. Кажется, должно быть легко отключить визуализацию длинной линии --- я нажал m-x global-whitespace-toggle-options l, а затем могу нажать m-x global-whitespace-toggel-options ?, чтобы подтвердить, что "длинная визуализация" отключена. Но длинные строки все еще выделены. Я убиваю буферы и перезагружаю их, и подсветка все еще там. Я определенно использую глобальный, а не локальный, пробельный режим.

Почему я не могу отключить визуализацию длинной строки?

4b9b3361

Ответ 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.