Я знаю, что есть решения для того, чтобы emacs отображали столбец 80 строк, но я не хочу такого рода визуальное нарушение. Я бы просто хотел подчеркнуть строку, если она содержит более 80 символов.
Как я могу выделить выделенные строки emacs, которые превышают 80 символов?
Ответ 1
Еще один простой вариант - запустить highlight-lines-matching-regexp
в выражении .\{81\}
.
Каждая строка с 81 символом или более будет выделена цветом по вашему выбору.
Ответ 2
См. whitespace-mode
- теперь он является частью Emacs и может делать гораздо больше, чем выделение только длинных строк. (Но, конечно, можно использовать только это.)
Ответ 3
Здесь моя конфигурация из Emacs Dev Kit:
;; whitespace-mode
;; free of trailing whitespace and to use 80-column width, standard indentation
(setq whitespace-style '(trailing lines space-before-tab
indentation space-after-tab)
whitespace-line-column 80)
В основном вам нужен только последний бит, но я считаю, что другие настройки весьма полезны (я ненавижу вкладки и конечные пробелы).
Ответ 4
Попробуйте highlight-80+.el
. Вы можете получить его от здесь.
Чтобы установить его, просто добавьте следующее в свой .emacs
:
(add-to-list 'load-path "/path/to/highlight-80+")
(require 'highlight-80+)
Затем вы можете включить его через:
M-x highlight-80+-mode
Ответ 5
Вот пример кода, который выделит текст, который находится за столбцом 80 с текущим "предупреждающим" лицом, и строку, чтобы включить его для режима С++.
;; Turn on warn highlighting for characters outside of the 'width' char limit
(defun font-lock-width-keyword (width)
"Return a font-lock style keyword for a string beyond width WIDTH
that uses 'font-lock-warning-face'."
`((,(format "^%s\\(.+\\)" (make-string width ?.))
(1 font-lock-warning-face t))))
(font-lock-add-keywords 'c++-mode (font-lock-width-keyword 80))
Он не выделяет всю строку, но я считаю, что это разумно полезно.
Ответ 6
Это не совсем то, что вы хотели, но у меня была аналогичная проблема, и я нашел этот вопрос/ответ. Все, что я хотел, это вставить визуальный гид, когда мне это нужно. Вот что я, наконец, закончил:
(defun insert-80 ()
"Insert an 80-character-wide guide at beginning of line."
(interactive)
(beginning-of-line)
(insert "0 1 2 3 4 5 6 7 |")
(newline)
(insert "01234567890123456789012345678901234567890123456789012345678901234567890123456789|")
(newline)
)
Супер простой, но иногда очень эффективный.
Ответ 7
В emacs-goodies-el
есть встроенный пакет (рекомендуется установить его в терминале) под названием highlight-beyond-fill-column.el, добавьте это в свой .emacs
или init.el
:
(setq-default fill-column 80)
(add-hook 'prog-mode-hook 'highlight-beyond-fill-column)
(custom-set-faces '(highlight-beyond-fill-column-face
((t (:foreground "red" )))))
Текст за пределами fill-column
, который равен 80 в фрагменте, будет выделен цветом red
. Вы можете установить лицо по своему усмотрению.