2014-09-26 3 views
2

Я недавно начал использовать Emacs (prelude, который поставляется с установленным smartparens), и я пытаюсь написать некоторые R-скрипты в ESS. Я нахожу, что когда я набираю путь к файлу, например, при вызове read.csv(), а затем попробуйте ввести второй ", чтобы пройти мимо него, вместо этого вставлена ​​пара экранированных кавычек. Итак, что должно быть read.csv("~/foo/bar.csv") становится read.csv("~/foo/bar.csv\"\"").После того, как я завершил вкладку в путь файла в ESS, smartparens вставляет экранированные кавычки

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

Я пробовал решение от this slightly different question, и теперь дополнительный набор кавычек не экранирован, а вставлен.

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

ответ

1

Вы правы, что это поведение вызвано smartparens. Это связано с функцией, которая отключает активные sexp -выражения, если вы вводите любой ключ, отличный от «обычного ключа», как письмо. Для получения дополнительной информации см. Справку по функции sp-skip-closing-pair и, возможно, ее исходный текст. (Если вы заинтересованы.)

Чтобы избежать этого, вы можете настроить sp-cancel-autoskip-on-backward-movement на nil.

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