在其他窗口中运行Emacs命令

时间:2009-10-15 15:58:50

标签: emacs

我正在寻找一种方法将任意Emacs命令的输出(在我的情况下是sql-send-region)发送到另一个窗口。我宁愿在目前的窗口中保持焦点,这将有效地给我一个窗口来编辑查询和一个窗口来查看输出。

2 个答案:

答案 0 :(得分:3)

我能够编写一些Emacs Lisp来解决我的问题:

(defun sql-send-region-and-return (start end)
  (interactive "r")
  (let ((oldbuf (buffer-name)))
    (sql-send-region start end)
    (switch-to-buffer oldbuf)))

这会将您所在区域的结果发送到SQL缓冲区并返回当前缓冲区,从而有效地完成所述目标。

感谢justinhj给了我一些新的线索来解决我的问题。

答案 1 :(得分:2)

您是否尝试将此变量设置为t,这听起来像您想要的行为。

SQL-POP-至缓冲 - 后发送区域

调用sql-send-region' or sql-send-buffer'后, 窗口被拆分,并显示SQLi缓冲区。如果这 变量不是nil,将选择缓冲区的窗口 通过调用pop-to-buffer'. If this variable is nil, that buffer is shown using display-buffer'。