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

Как я могу выделить выделенные строки emacs, которые превышают 80 символов?

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

4b9b3361

Ответ 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. Вы можете установить лицо по своему усмотрению.