Почему в режиме Emac есть дополнительный символ новой строки?

StackOverflow https://stackoverflow.com/questions/1010478

  •  06-07-2019
  •  | 
  •  

Вопрос

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

Похоже на это:

> (+ 1 2)
3

> ;; extra newline above

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

> (+ 1 2)
3
> ;; no extra newline above
Это было полезно?

Решение

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

(defun comint-send-input-no-newline ()
  (interactive)
  (comint-send-input t nil))

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top