Клиент MariaDB не имеет приглашения в Emacs sql-mode

Можно поместить код в строку и передать его eval или sh или просто интерполируйте его.

perform () {
  "$@"
}

perform echo "moo"

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

5
02.10.2015, 18:25
2 ответа

Проблема заключается в том, что приглашение не соответствует тому, что ожидает sql-mode . MariaDB использует «MySQL [dbname]>» в качестве приглашения по умолчанию, а sql-mode разрешает только «mysql>».

Одно из исправлений - добавить "--prompt = mysql>" в sql-mysql-options :

(setq sql-mysql-options '("--prompt=mysql> "))

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

Я пробовал

(sql-set-product-feature 'mysql :prompt-regexp "^[mM]y[sS][qQ][lL][^>]*> ")

, но это не сработает, если в приглашении не указано «mysql>» или «MySQL>».

2
27.01.2020, 20:36

Вы забыли выйти из специального символы. Elisp-regex довольно многозначен с обратной косой чертой, так как первый \ проглатывается строкой lisp. См. https://www.emacswiki.org/emacs/RegularExpression

Чтобы поймать MariaDB и MySQL, в моей конфигурации есть следующее:

(sql-set-product-feature 'mysql: prompt-regexp " ^ \\ (MariaDB \\ | MySQL \\) \\ [[_ a-zA-Z] * \\]> ")

5
27.01.2020, 20:36

Теги

Похожие вопросы