i Python предупреждение в Emacs: ваш терминал не поддерживает запросы позиции курсора (CPR) - PullRequest
1 голос
/ 04 марта 2020

Как мне заставить python правильно работать в emacs?

Следуя рекомендации i python docs , я включил i python:

(require 'python)
(setq python-shell-interpreter "ipython")

При запуске сервера i python появляется следующее предупреждение.

Python 3.7.4 (default, Jul  9 2019, 18:15:00) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.12.0 -- An enhanced Interactive Python. Type '?' for help.

WARNING: your terminal doesn't support cursor position requests (CPR).

Подсказки "[In]" не печатаются вообще. А также, когда код отправляется из другого буфера (например, через python-shell-send-buffer). Вот пример снимка экрана (я предполагаю, что i 8 i 8 из приглашения не отображается должным образом):

WARNING: your terminal doesn't support cursor position requests (CPR).
i
8
i
8

hello world

В интерактивном режиме подсказки "[Out]" иногда отображаются, а иногда нет:

print('hello world')

hello world

4

Out[3]: 4

Emacs, который я запускаю на macos:

This is GNU Emacs 26.3 (build 1, x86_64-apple-darwin14.5.0, NS appkit-1348.17 Version 10.10.5 (Build 14F2511))
 of 2019-09-02
Copyright (C) 2019 Free Software Foundation, Inc.

1 Ответ

1 голос
/ 05 марта 2020
(setq python-shell-interpreter-args "--simple-prompt -i")

i python предполагает, что у вас "обычный" терминал, но в Emacs он работает под "тупым" терминалом . Действительно, я python должен знать это через переменную окружения TERM. Похоже, в последнее время были предприняты некоторые попытки: https://github.com/prompt-toolkit/python-prompt-toolkit/issues/390. Надеюсь, это будет работать в следующем выпуске.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...