我喜欢使用 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') as well.svn: system('emacs -nw svn-prop.tmp') 返回 256
(它适用于VISUAL
set to just emacs
,但只能从 Emacs X 窗口内部,而不是在终端会话内部。)
有没有办法让 shell 模式在这里做正确的事情并代表命令行进程打开一个新的缓冲区?