Почему в режиме Emac есть дополнительный символ новой строки? - PullRequest
3 голосов
/ 18 июня 2009

Я использую схему ypsilon, используя режим схемы Emacs 23. Когда я ввожу выражение в интерпретаторе, оно добавляет дополнительную новую строку (см. Ниже). Я никогда не видел, чтобы это случилось с любым другим переводчиком. Я знаю, что ypsilon этого не делает, потому что он отлично выглядит в shell-mode shell (хотя shell-mode демонстрирует то же некорректное поведение) Какая функция в схеме или в режиме коминта может добавлять эту новую строку?

выглядит так:

> (+ 1 2)
3

> ;; extra newline above

Должно быть так:

> (+ 1 2)
3
> ;; no extra newline above

Ответы [ 2 ]

3 голосов
/ 18 июня 2009

Я понял это. comint-send-input имеет необязательный параметр no-newline. Я установил значение true (не вставлять еще одну новую строку), связав клавишу Return с новой функцией, которая переносит comint-send-input. Эти дополнительные символы новой строки исчезают. Я не знаю, почему они появляются в первую очередь.

(defun comint-send-input-no-newline ()
  (interactive)
  (comint-send-input t nil))
0 голосов
/ 18 июня 2009

Это больше обходной путь, чем что-либо еще, но попробуйте SLIME . Я обнаружил, что он очень хорошо обрабатывает ввод / вывод. Вы можете найти бэкэнды SLIME, которые поддерживают Scheme.

...