【问题标题】:Prevent SLIME to switch to the repl buffer防止 SLIME 切换到 repl 缓冲区
【发布时间】:2014-12-18 18:21:35
【问题描述】:

我从来没有真正使用过 REPL,而且我发现每次连接到一个时髦的实例时它都会弹出,这很烦人。如何防止 SLIME 切换到 repl 缓冲区?

我试图在 slime 的代码中找到它在哪里执行此操作,但是当您不确定要查找什么时,它有点庞大。

谢谢

【问题讨论】:

    标签: emacs common-lisp slime dot-emacs


    【解决方案1】:

    这是我在lispy 中的做法:

    (defun lispy--eval-lisp (str)
      "Eval STR as Common Lisp code."
      (require 'slime-repl)
      (unless (slime-current-connection)
        (let ((wnd (current-window-configuration)))
          (slime)
          (while (not (and (slime-current-connection)
                           (get-buffer-window (slime-output-buffer))))
            (sit-for 0.2))
          (set-window-configuration wnd)))
      (let (deactivate-mark)
        (cadr (slime-eval `(swank:eval-and-grab-output ,str)))))
    

    【讨论】:

    • 如果我理解正确,您只是保存当前窗口配置并在连接后恢复它?另外,很好地尝试对您的项目进行公共化:P
    • 你让它听起来很简单。我花了几个小时才想出这个:(
    • 抱歉,我并不想让它听起来很简单,我只是不确定代码是否正在这样做:)
    • 我只是在开玩笑。顺便说一句,sit-for 只是因为在 slime 完全初始化之前我无法评估,并且需要一段时间才能完成。
    • 这是我的想法,也是我保留它的原因。谢谢。
    【解决方案2】:

    感谢@abo-abo 的回答,这是我的解决方案。

    (defun my-slime-connect () (interactive)
       (let ((wnd (current-window-configuration)))
     (call-interactively 'slime-connect)
     (sit-for 0.2) ;; Not sure if necessary, haven't tested without it.
     (set-window-configuration wnd)))
    

    【讨论】:

      猜你喜欢
      • 2019-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-11
      • 1970-01-01
      • 1970-01-01
      • 2011-10-12
      相关资源
      最近更新 更多