2013-12-13 5 views
4

Когда я использую query-replace для замены, скажем, «abc» на «def», а затем снова вызовите query-replace, я получаю минибуфер, который выглядит так, все на одном лице :отдельное лицо для поиска/замены строк в emibs minibuffer

Query replace (default abc -> def): 

Было бы легче прочитать эту строку, если бы «abc» и «def» отображались на другом лице. Это было бы еще более выраженным, если бы строка поиска или замены содержала пробелы или круглые скобки или стрелки, все из которых были бы смешаны с приглашением вокруг них. Я ожидал бы другого лица для строк поиска и замены, которые будут предложены по умолчанию. Однако я не могу найти что-либо в документации, которая даже позволяет отдельно настраивать грани, используемые для отображения строк поиска и замены. Может ли кто-нибудь предоставить мне код, который я мог бы использовать для этого?

+0

Звучит неплохо. Почему бы вам не предложить это как дополнение к Emacs. Я считаю, что для этого вы можете использовать пункт меню «Справка -> Отправить отчет об ошибке». – Lindydancer

+0

@Alan: Разве вы не говорите о минибуфере вместо модельного? – TacticalCoder

+0

Возникающая проблема - это 'query-replace-read-from' в' replace.el'. И, да, @TacticalCoder прав - мини-буфер стоит, а не модельный. Должна быть возможность использовать lock-lock для разных элементов 'query-replace-read-from' или что-то вроде свойств overlay/text. Также возможно изменение формата макета. Мы уже знаем, что можно изменить шрифт для 'minibuffer-prompt', а также установить шрифт минибуфера по умолчанию с настройкой enter/exit-minibuffer; поэтому можно сделать то, что вы предлагаете. – lawlist

ответ

2

Использование библиотеки replace+.el - описание here.

См. Также Emacs bug #16136, что связано с расширением. Проблема в том, что теперь пользователи могут решить, должно ли только сообщение иметь лицо. (И если это так, они могут настроить это лицо.) Необходима способность сделать это, но также позвольте этому лицу занять заднее сиденье на лица, которые уже могут быть переданы определенным частям строки подсказки.

Библиотека replace+.el выключает лицо по всей строке, и выдвигает на первый план важные части строки (именно те, которые вы запрашиваете) в разных лицах (которые вы можете, конечно, подгоняет. Если запрос повышения #16136 будет реализован, то остальная часть подсказки может храниться в обычной строке подсказки (minibuffer-prompt).

Немного трудно поверить, что дизайн для этого был настолько близоруким в Emacs, но это было. И оно реализовано в коде C, поэтому это не очень удобно для улучшения пользователей. Будем надеяться на исправление. Между тем вы можете получить то, что вы запрашиваете, но без minibuffer-prompt, который используется в остальной части приглашения, загрузив replace.el.

 Смежные вопросы

  • Нет связанных вопросов^_^