我使用的是 RedHat EL 5。我使用的是使用 GTK 编译的 gvim 7.1。我想要的是能够从 gvim 中执行 svn 提交(使用 vi/vim)。目前唯一的问题是我得到的输出是乱码。 例如,调用 :!vi 从 gvim 中生成:
[7;1H~
[8;1H~
[9;1H~
[10;1H~
[11;1H~
[12;1H~
[13;1H~
[14;1H~
[15;1H~
[16;1H~
[
17;1H~
[18;1H~
[19;1H~
[20;1H~
[21;1H~
[22;1H~
[23;1H~
[24;1H~
[25;1H~
[26;1H~
[27;1H~
[28;1H~
[29;1H~
[30;1H~
[31
;1H~
[32;1H~
[33;1H~
[34;1H~
[35;1H~
[36;1H~
[37;1H~
[38;1H~
[39;1H~
[15;42HVIM - Vi IMproved[17;43Hversion
7.0.237[18;39Hby Bram Moolenaar et al.[19;29HVim is open source and freely distributable[21;36HHe
lp poor children in Uganda![22;28Htype :help iccf<Enter> for information [24;28Htype :q<En
ter> to exit [25;28Htype :help<Enter> or <F1> for on-line help[26;28Htyp
e :help version7<Enter> for version info[1;1H
我如何配置 vi/vim/gvim 来解决这个问题,从而使我的 svn 提交在从 gvim 调用时看起来正确。
谢谢, 那鸿
最佳答案
不要使用 vi
作为命令,使用 gvim -f
代替。
问题是 vi
(或控制台中的 vim
)需要一个终端来做一些事情,比如四处移动光标等等。gvim 的 pty 是一个非常基本的纯 ASCII 终端。
普通的 vim
没有这个问题,因为它只是将子进程直接通过管道传输到您的终端,因此所有转义序列仍然有效。
你可以使用 gvim -f
来代替,这样一个新的 gvim 窗口会为你的提交信息弹出。 (-f
防止后台处理)这不是您所要求的(因为您获得了一个新窗口)但它是您在不向 vim 添加完整终端支持的情况下最接近您所要求的内容.
关于linux - 从 vim 中调用 vi(对 svn 提交很有用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9235498/