首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Emacs:如何访问所有sql模式缓冲区并设置适当的sql缓冲区

Emacs:如何访问所有sql模式缓冲区并设置适当的sql缓冲区
EN

Stack Overflow用户
提问于 2011-03-25 02:52:40
回答 2查看 723关注 0票数 2

我在emacs中使用sql-mode的典型用法是:

a.打开foo.sql文件并开始编辑

b.决定使用sql-send-region的键绑定来运行它

c.启动我的自定义( db - connect )函数以连接到适当的db并创建一个*SQL* buffer。

但是,foo.sql并不知道*SQL*缓冲区的存在,除非我在缓冲区中执行"m-x mode“,以便刷新它的环境并检测到此时存在这样的缓冲区。我想在我的自定义db-connect函数中嵌入一些代码,以便使用sql-mode访问所有缓冲区并更新sql-buffer变量。我确信一定有几个堆栈溢出成员以前做过这样或类似的事情。

谢谢,

SetJmp

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-25 18:52:34

快速浏览一下sql.el文件,就会发现命令sql-set-sqli-buffer-generally,也许这是为您准备的?

另一种方法是通过在主模式钩子中调用kill-local-variable来终止sql-buffer的缓冲区本地变体。(这样,效果将是所有SQL缓冲区都将与最新的SQL缓冲区对话。)

免责声明:我对SQL或SQL模式一无所知,一般只知道Emacs。

票数 4
EN

Stack Overflow用户

发布于 2011-03-25 03:25:40

我已经实现了这个小辅助函数来根据缓冲区的主模式对其进行过滤

代码语言:javascript
复制
(defun buffer-mode (buffer-or-name)
  (with-current-buffer buffer-or-name major-mode))


(defun filter-buffers-by-mode (mode)
  (delq nil
        (mapcar
         (lambda (x) (and (eq (buffer-mode x) mode) x))
         (buffer-list))))

您可以将' sql -mode作为参数传递,您将获得所有打开的sql缓冲区的列表。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5424032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档