Как получить "радужные скобки" в Emacs? - PullRequest
47 голосов
/ 10 марта 2010

Я бы хотел получить радужные парены для редактирования Clojure в Emacs, и поскольку VI делает это Я предполагаю, что в Emacs это должно быть что-то вроде бабочки M-x или чего-то еще:)

Ответы [ 3 ]

54 голосов
/ 21 марта 2011

Это старый вопрос, но недавно я написал для этого режим RainbowDelimiters . Это режим типа «радужных паренов», который окрашивает все парены, скобки и фигурные скобки с учетом программирования Clojure.

Подсвечивает весь буфер, а не только точку окружения паренов.

Самое главное, что это FAST - все остальные режимы радуги, которые я пробовал, замедляют редактирование (особенно прокрутку) довольно много , Я приложил значительные усилия для профилирования и оптимизации, чтобы не оказывать заметного влияния на скорость прокрутки / редактирования.

Информацию об этом можно найти на странице EmacsWiki , а сам режим находится по адресу rainbow-delimiters.el .

22 голосов
/ 10 марта 2010

Я использую highlight-parentheses-mode из упомянутого скрипта mquander. Он не дает много эффекта радуги из коробки, но его можно настроить:

(setq hl-paren-colors
      '(;"#8f8f8f" ; this comes from Zenburn
                   ; and I guess I'll try to make the far-outer parens look like this
        "orange1" "yellow1" "greenyellow" "green1"
        "springgreen1" "cyan1" "slateblue1" "magenta1" "purple"))

Полагаю, я снял настоящие цвета с Vimclojure. Обратите внимание, что Vimclojure выделяет все круглые скобки в файле, тогда как с highlight-parentheses-mode будут выделены только те парены, которые фактически содержат точку (и только ограниченное количество уровней). Мне иногда кажется, что это поведение полезно, но, возможно, ему немного не хватает привлекательности по сравнению с Vimclojure.

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

2 голосов
/ 10 марта 2010

Вот режим для этого , который я кратко использовал в прошлом. Вот еще один , который я не пробовал.

...