2017-02-11 16 views
0

Мой стандартный шрифт является пропорциональным. Когда я редактирую файлы разметки, я хотел бы, чтобы все разделы с отступом на 4 и более пространства отображались в моноширинном шрифте.Как установить монопотентный шрифт в кодовых блоках?

Я не использую специальный режим уценки. Поэтому я был бы в порядке, если бы мне пришлось вручную включить это поведение для текущего буфера. Хотя, конечно, нужен мой собственный режим для файлов *.md, но я не знаю, как это сделать (и выходит за рамки этого вопроса).

режимы, которые активны для меня являются:

Enabled minor modes: Abbrev Auto-Composition 
    Auto-Compression Auto-Encryption Blink-Cursor 
    Column-Highlight Column-Number Desktop-Save File-Name-Shadow 
    Flyspell Font-Lock Global-Font-Lock Icomplete Line-Number 
    Menu-Bar Mouse-Wheel Shell-Dirtrack Show-Paren 
    Tooltip Transient-Mark 

ответ

2

Да, вы должны иметь режим, который подчеркивает код уценки. (Попробуйте M-x package-install RET markdown-mode+ RET) Если у вас включена функция блокировки шрифтов (я подозреваю, что у вас есть), режим, который вы в конечном итоге, вероятно, дает подсветку синтаксиса для уценки.

Теперь подсветка синтаксиса - это просто изменения шрифта и цвета. После этого вы можете настроить шрифт, используемый для кода, перемещаясь по кодовому блоку и выдавая M-x customize-face. Мой режим уценки имеет кодовые блоки под markdown-pre-face; курсор будет выбран по умолчанию для вас.

Я подготовил несколько скриншотов, чтобы показать рабочий процесс. Определение того, что emacs допускает для семейства шрифтов или литейного производства, - это немного темной магии, и я оставляю его в Google, чтобы узнать больше об этом. В Linux-системах раньше был уродливый помощник под названием xfontsel, где вы можете просмотреть различные семейства шрифтов и литейные цеха.

Вы можете поэкспериментировать, не сохраняя ничего в первую очередь, применяя изменения без сохранения; когда все выглядит нормально, вы можете «применить и сохранить» в режиме настройки.

screenshots of how to adjust font-face in Emacs

+0

'markdown-mode +' показывает '(Нет совпадений) ". «markdown-mode» будет соответствовать. Будет ли этот режим «достаточным»? Я думаю, что я установил его уже некоторое время назад (и не очень понравилось). – towi

+0

@towi: Единственное, что нам нужно в этом режиме - это блокировка шрифтов. У вас уже должно быть много. Извините, если вам это не нравится, но какой-то режим должен быть включен, чтобы выполнить специальную блокировку шрифтов. Режим - это просто код, который можно обрезать, чтобы предоставить только части синтаксиса, но он немного продвинут. Если у вас есть что-то о режиме, в частности, который вы хотите отключить, задайте новый вопрос об этом! – progo

0

Я собираюсь частично не согласны с утверждением, что вы можете делать то, что вы после этого. Вы можете только частично выполнять то, что вам нужно, и это немного взломать.

В принципе, вы можете установить разные шрифты для разных лиц. Таким образом, если текст, который вы хотите отобразить в шрифте с фиксированной шириной, имеет другое определение лица, вы можете изменить шрифт с пропорционального шрифта на шрифт с фиксированной шириной. По крайней мере, это теория.

К сожалению, результаты, как правило, меньше, чем вы надеетесь.

Проблема в том, что большинство режимов не определяют грани для всех возможных символов. Лица, как правило, используются только для того, чтобы сделать что-то выделяющееся, и это имеет тенденцию означать что-то особенное в этом режиме - заголовок, бит синтаксиса и т. Д.

Проблема будет с его «лицом по умолчанию» - используется лицо когда другое лицо не указано. По умолчанию лицо не зависит от режима. Если вы установите грань по умолчанию моноширинному шрифту, этот шрифт будет использоваться во всех режимах, а не только в «простых» символах в режиме уценки. Если какой-либо из ваших шрифтов в режиме уценки пропорционален, вы обнаружите, что выравнивание в отступе не будет выглядеть последовательным. В зависимости от структуры содержимого буфера это может быть или не быть проблемой.

Лично я отказался от использования шрифта пропорционального шрифта в качестве шрифта по умолчанию под emacs давным-давно и вместо этого установил вместо него шрифт с фиксированной шириной по умолчанию и затем задал пропорциональные шрифты для некоторых специальных целей, таких как org -модулировать заголовки.

некоторые вещи, которые вы можете попробовать какую мощь работу, будет

  • Файловые локальные переменные для настройки шрифтов только в уценки filtes. Я не пробовал это, но вы можете использовать локальные переменные файла. Вероятно, вы захотите создать шаблон уценки, который устанавливает это в новых методах уценки.

  • Сделать буфер переменных лица локальным. Возможно, вы сможете определить функцию привязки режима уценки, которая делает локальные переменные буфера локальными и устанавливает их на шрифт фиксированной ширины.

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

+0

На самом деле, я получил его работу и доволен результатом. Правильно, а не на 100%, гайка достаточно близко (например, если у меня есть что-то в блоке кода, которое напоминает URL-адрес/режим блокировки URL-адресов, обнаруживает их и форматирует их пропорционально внутри кодового блока. Я использую пропорциональный шрифт в emacs для ... ох, я не знаю ... 7 лет ... сейчас и доволен. Тем не менее, я не использую магию emacs, но только небольшие фокусы. 'col-highlight-mode' и * multicursors *' mc/... 'немного ухабисты, чтобы посмотреть, но мой мозг подошел к нему. – towi

+0

Если это работает и царапины, ваш зуд достаточно, тем лучше. Мне нравится лучший вид пропорциональных шрифтов, но большая часть моей работы с emacs связана с взаимодействием кода и оболочки. Достаточно иметь такие вещи, как обработанные буферы или вывод оболочки, потерять выравнивание или код, выглядящий странно, чтобы заставить меня придерживаться в основном фиксированной ширины. К счастью, в наши дни есть несколько улучшенных шрифтов с фиксированной шириной. –