【问题标题】:emacs ipython autoclear buffer after executing执行后emacs ipython自动清除缓冲区
【发布时间】:2018-06-05 00:33:51
【问题描述】:

我对 Emacs 还很陌生,终于弄清楚了如何设置 python 环境。我使用 elpy 和 iPython 作为 python shell 解释器。我的问题如下:

按下C-c C-c后,右边的缓冲区显示执行结果。红框是正在执行的代码,蓝框是python返回的执行结果。我的问题是:

  1. 有没有办法只显示结果?
  2. 而每次脚本执行后,如何设置右侧缓冲区只显示当前结果,即清除之前执行的结果?谢谢。

【问题讨论】:

    标签: python emacs


    【解决方案1】:

    有没有办法只显示结果?

    elpy 已经有一个自定义变量:

    (setq elpy-shell-echo-input nil)
    

    以及每次脚本执行后,如何设置缓冲区 右边只显示当前结果,即清除上一个 执行结果?谢谢。

    elpy 没有这个功能。但是您可以创建一个包装函数并将其绑定到相同的键:

    (define-key elpy-mode-map (kbd "C-c C-c")
      (lambda (p)
        (interactive "P")
        (ignore-errors
          (with-current-buffer (process-buffer (python-shell-get-process-or-error))
            (let ((comint-buffer-maximum-size 0))
              (comint-clear-buffer))))
        (elpy-shell-send-region-or-buffer p)))
    

    【讨论】:

    • 嗨,第一个答案解决了我的问题。但是第二个,它说“没有劣质的 Python 进程正在运行。”
    • 抱歉,之前的解决方案是仓促整理的。当 Python 进程不存在时,它失败了。我刚刚更新了解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多