2016-01-18 7 views
4

В emacs есть режим show-paren-mode, который окрашивает противоположную совпадающую скобку, когда курсор находится на другом. Я написал пример, объясняющий show-paren-mode:Показывать круглые скобки, когда внутри них - Emacs

(<-colored colored->)| <-cursor 

Однако это не работает, когда курсор находится не на скобкой:

(<-not colored cursor inside->| not colored ->) 

Как я могу позволить это? Я нахожу, что при выполнении slurpage и barfage в paredit я не могу отслеживать круглые скобки очень хорошо, потому что они не окрашены, если я не на них.

(<-colored  cursor->|  colored->) This is optimal 

Редактировать: Благодаря комментарию от @lawlist я разрешил эту проблему.

+0

Я использую 'show-paren-mode' с' paredit-mode'. Он показывает соответствующий парн, как обычно. Можете ли вы уточнить, что вы ищете, взаимодействуя между ними? – verdammelt

+0

@verdammelt Я надеюсь, что это прояснит. –

+1

Подумайте об использовании библиотеки, которая не зависит от того, что упоминалось в вашем вопросе, и отключите режим show-parens-default, т. Е. Не имеет значения, есть ли у вас еда/barfing/sluping/paredit/etc. Взгляните на круглые скобки: https://github.com/tsdh/highlight-parentheses.el Взгляните на радужные разделители: https://github.com/Fanael/rainbow-delimiters И вот ссылка на мой собственный поворот на «круглые скобки», который мне больше нравится (по нескольким важным причинам, таким как прокрутка и не аккумулирование ненужных наложений ...): http://stackoverflow.com/a/23998965/2112489 – lawlist

ответ

0

Благодаря комментарий по lawlist Я добавил code from his answer on another question в моей инициализации файл.

Он окрашивает каждый набор совпадающих круглых скобок в шаблон радуги.

0

Это хорошо работает для меня (? Более поздней версии Emacs (до 25 лет), которые могут потребоваться для реализации новой консультации):

(define-advice show-paren-function (:around (fn) fix) 
    "Highlight enclosing parens." 
    (cond ((looking-at-p "\\s(") (funcall fn)) 
     (t (save-excursion 
      (ignore-errors (backward-up-list)) 
      (funcall fn))))) 
+0

Я могу подтвердить, что он не работает на GNU Emacs 24.4.1 –