gpt4 book ai didi

unix - 当命令尝试在 shell 模式下打开编辑器时打开 Emacs 缓冲区

转载 作者:行者123 更新时间:2023-12-03 12:47:25 27 4
gpt4 key购买 nike

我喜欢使用 Emacs 的 shell 模式,但它有一些不足。其中之一是,当 shell 命令试图调用编辑器时,它不够聪明,无法打开新缓冲区。例如使用环境变量 VISUAL设置为 vim我从 svn propedit 得到以下信息:

$ svn propedit svn:externals 。
"svn-prop.tmp"2L, 149C[1;1H
~ [4;1H~ [5;1H~ [6;1H~ [7;1H~]
...

(可能很难从表示中分辨出来,但这是一个可怕的、丑陋的困惑。)

VISUAL设置为 "emacs -nw" ,我得到

$ svn propedit svn:externals 。
emacs:终端类型“dumb”不足以运行 Emacs。
它缺乏定位光标的能力。
如果这不是您拥有的实际终端类型,
使用 Bourne shell 命令`TERM=... export TERM'(C-shell:
`setenv TERM ...') 来指定正确的类型。可能有必要
执行`unset TERMINFO'(C-shell:`unsetenv TERMINFO')以及.svn:system('emacs -nw svn-prop.tmp')返回256

(它适用于 VISUAL 设置为仅 emacs ,但只能从 Emacs X 窗口内部,而不是在终端 session 内部。)

有没有办法让 shell 模式在这里做正确的事情并代表命令行进程打开一个新的缓冲区?

最佳答案

您可以通过 emacsclient 附加到 Emacs session 。 .首先,启动 emacs 服务器

M-x server-start

或添加 (server-start)给您的 .emacs .然后,
export VISUAL=emacsclient

编辑离开。

笔记:
  • emacs的版本和 emacsclient必须同意。如果您安装了多个版本的 Emacs,请确保调用版本 emacsclient对应于运行服务器的 Emacs 版本。
  • 如果您在多个 Emacs 进程/帧中启动服务器(例如,因为 (server-start) 在您的 .emacs 中),缓冲区将在最后一个帧中创建以启动服务器。
  • 关于unix - 当命令尝试在 shell 模式下打开编辑器时打开 Emacs 缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/116560/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com