【问题标题】:Send EOF (^D) to emacs ansi-term发送 EOF (^D) 到 emacs ansi-term
【发布时间】:2015-01-27 14:03:14
【问题描述】:

当我在 Emacs 中使用 ansi-term 模式并运行诸如 cat 之类的程序时,^D 不会像通常那样结束输入。事实上,它似乎根本没有做任何事情。

^C 仍然有效。

我安装了 Evil

【问题讨论】:

    标签: emacs eof evil-mode ansi-term


    【解决方案1】:

    ansi-term 有两种不同的输入子模式。要在默认(字符)模式下发送文字 C-d,只需按 C-d。但是,如果您处于线路模式,则需要C-c C-d。或者您可以使用C-c C-k 切换到字符模式(然后使用C-c C-j 返回到行模式)。

    另见the documentation

    【讨论】:

    • 不幸的是, C-c C-d 让我进入“列表目录(简短):”提示符,而 C-c C-k 只是杀死了我的键盘输入。也许安装 Evil 搞砸了(可能应该提到这一点)?无论如何,看起来我不会使用太多 Emacs,但感谢您的回答!
    • 现在也可以看看stackoverflow.com/questions/28567522/…这个答案更适合的地方。
    【解决方案2】:

    尝试将这些添加到您的配置中(在加载 evil 之后):

    (delete 'term-mode evil-insert-state-modes)
    (add-to-list 'evil-emacs-state-modes 'term-mode)
    

    在我的 emacs 上进行此修改,cat 后跟 ^D in ansi-term char-mode 结束输入并让我回到提示符。确保你知道 char-mode 和 line-mode 之间的区别,比如之前提到的 Tripleee!

    【讨论】:

    • 我完全忘记了这个问题,也好久没用Emacs了。不过,感谢您提供解决方案!
    • 这将在术语模式下完全禁用邪恶。要改为在 evil-insert-state(在任何模式下)更改 '^D' 的行为以插入该字符,请使用 (define-key evil-insert-state-map (kbd "C-d") 'self-insert-command)
    猜你喜欢
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多