首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >以编程方式将Emacs窗口设置为输入焦点

以编程方式将Emacs窗口设置为输入焦点
EN

Stack Overflow用户
提问于 2014-04-05 16:38:18
回答 2查看 136关注 0票数 1

如何以编程方式强制Emacs X窗口获得当前用户输入焦点?

我想在下面的Bash脚本中使用它

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Debug in Emacs using GDB
function emacs-gdb()
{
    if [ -z $1 ]; then
        echo -e "Usage: $FUNCNAME EXE EXE_ARGS...";
    else
        if (($# >= 2)); then
            local ARGS="--args ${@:1:100}";
        else
            local ARGS="$1";
        fi
    emacsclient --eval "(gdb \"gdb -i=mi $ARGS\")"
    fi
}

以使Emacs窗口自动获得窗口焦点。

EN

回答 2

Stack Overflow用户

发布于 2014-04-06 02:33:16

您可以通过在eval代码中添加对raise-frame的调用来完成此操作。

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
emacsclient --eval "(progn (raise-frame) (gdb \"gdb -i=mi $ARGS\"))"
票数 1
EN

Stack Overflow用户

发布于 2014-04-06 12:21:33

我从某个与org-protocol相关的地方复制了这篇文章。它也应该对你有帮助:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(defadvice raise-frame (after make-it-work (&optional frame) activate)
    "Work around some bug? in raise-frame/Emacs/GTK/Metacity/something.
     Katsumi Yamaoka posted this in
     http://article.gmane.org/gmane.emacs.devel:39702"
     (call-process
     "wmctrl" nil nil nil "-s" "1")
     (call-process
     "wmctrl" nil nil nil "-i" "-R"
     (frame-parameter (or frame (selected-frame)) 'outer-window-id)))

这是对@tungd建议调用raise-frame的补充。

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

https://stackoverflow.com/questions/22883680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文