首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使grep-查找在有*ansi-term*的窗口中始终打开

如何使grep-查找在有*ansi-term*的窗口中始终打开
EN

Stack Overflow用户
提问于 2014-06-09 10:31:24
回答 3查看 130关注 0票数 1

当我从事一个项目时,我总是在一个窗口中使用bash的ansi术语。如果存在*ansi-term*缓冲区,是否可以将grep-find引导到始终打开的窗口中?

我有运行grep的功能-在我的grep上找到。我只需要将函数定向到在有*ansi-term*的窗口中打开。

EN

回答 3

Stack Overflow用户

发布于 2014-06-09 13:43:44

这似乎符合您的要求,但我只进行了非常简短的测试。

代码语言:javascript
复制
(defadvice find-grep (around switch-to-ansi-term activate)
  (let ((b (get-buffer "*ansi-term*")))
    (and b (select-window (get-buffer-window b t))) )
  ad-do-it
  (and b (delete-window)) )
票数 0
EN

Stack Overflow用户

发布于 2014-06-09 14:09:15

我创建了这两个函数:

代码语言:javascript
复制
(defun windows-buffer-match (regex)
  "return window for open buffer that match regex"
  (let ((list '()))
    (walk-windows (lambda (window)
                    (let ((buffer (window-buffer window)))
                      (if (string-match regex (buffer-name buffer))
                          (setq list (cons window list))))))
    list))

(defun window-match-jump (regex)
  (interactive "sBuffer: ")
  (let ((windows (windows-buffer-match regex)))
    (if (not (null windows))
        (select-window (car windows)))))

正如@tripleee在他的回答中所建议的那样,我用它来提建议:

代码语言:javascript
复制
(defadvice find-grep (around switch-to-ansi-term activate)
  (window-match-jump (regexp-quote "*ansi-term*")))

此外,该函数还可以用来打开grep窗口中的不同名称,然后是ansi项。

票数 0
EN

Stack Overflow用户

发布于 2014-06-09 12:45:39

你可以用FIFO。在你的安西任期

代码语言:javascript
复制
mkfifo ~/ansi
while :; do cat ~/ansi; done

和其他地方

代码语言:javascript
复制
grep xyz abc > ~/ansi
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24118367

复制
相关文章

相似问题

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