Скрыть / изменить изогнутые стрелки Emacs из-за переноса слов?

Я хотел бы изменить (или полностью скрыть) символ "изогнутая стрелка", который появляется в полосе Emacs (как с левой, так и с правой стороны). Я использую Emacs 24 на Mac, установленном через homebrew. Я нахожу это визуально отвлекающим. Меньший символ, такой как центральная точка, может работать хорошо.

Для контекста это официальное описание маленьких изогнутых стрелок (от http://www.gnu.org/software/emacs/manual/html_node/emacs/Continuation-Lines.html):

Иногда строка текста в буфере - логическая строка - слишком длинная, чтобы поместиться в окне, и Emacs отображает ее в виде двух или более строк экрана. Это называется переносом строки или продолжением, а длинная логическая строка называется продолжением строки. На графическом дисплее Emacs указывает перенос строк с небольшими изогнутыми стрелками в левой и правой полосах окна. В текстовом терминале Emacs указывает перенос строки, отображая символ "\" в правом поле.

Страница Emacs LineWrap Wiki не отвечает на мой вопрос.

Лучшая информация, которую я нашел, содержится в ответе Stackru:

Когда в Emacs текстового терминала (-nw) для переноса по словам установлено значение nil, на правом поле появляется символ обратной косой черты.

Если для переноса слов в текстовом терминале Emacs установлено значение t, символ обратной косой черты не отображается. Установка visual-line-mode также устанавливает перенос слов в true.

Это не применяется, когда Emacs работает как окно с графическим интерфейсом: маленькая изогнутая стрелка появляется на правом поле независимо от значения переноса по словам.

Возможно ли скрыть или изменить изогнутые стрелки? Если нет, то ответ, который более или менее гласит: "Я посмотрел на Х и пришел к выводу, что это невозможно", тоже подойдет.

Обновление: хотя это и не страшный обходной путь, изменение границ - это не то, что мне нужно: я хочу настроить символ "изогнутая стрелка" или растровое изображение.

1 ответ

Сначала небольшой контекст. Из растровых изображений Emacs Fringe: "Индикаторы Fringe - это крошечные значки, отображаемые в области окна для обозначения усеченных или непрерывных линий, границ буфера и т. Д."

Вы не можете заменить фигурную стрелку произвольным текстом. Согласно ответу lunaryorn на "Возможно ли заменить краевые растровые изображения текстом в Emacs?":

Нет. "Битовые карты" полос - это действительно битовые карты, то есть векторы 0/1 битов, наложенные поверх полосы. Невозможно напрямую визуализировать произвольные символы Юникода на границе. [...] Что вы можете сделать, так это самостоятельно преобразовать символ Юникода в растровое изображение 0/1.

Как говорится, вы можете изменить растровое изображение. Растровые растровые изображения содержат список растровых растровых изображений; left-curly-arrow а также right-curly-arrow те, которые имеют отношение к этому вопросу.

Вот что я нарисовал. Отрегулируйте по своему вкусу. Поместите это в файл инициализации Emacs.

(define-fringe-bitmap 'right-curly-arrow
  [#b00000000
   #b00000000
   #b00000000
   #b00000000
   #b01110000
   #b00010000
   #b00010000
   #b00000000])
(define-fringe-bitmap 'left-curly-arrow
  [#b00000000
   #b00001000
   #b00001000
   #b00001110
   #b00000000
   #b00000000
   #b00000000
   #b00000000])

Дополнительную документацию можно найти на странице "Настройка растровых изображений", включая set-fringe-bitmap-face которая "устанавливает грань для полосы. Если грань равна нулю, она выбирает грань полосы. Лицо растрового изображения контролирует цвет для рисования".

Другие вопросы по тегам