我使用的是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调用时看起来正常。
谢谢你, Nachum
答案 0 :(得分:4)
请勿使用vi
作为命令,而是使用gvim -f
。
问题是vi
(或控制台中的vim
)需要一个终端可以执行诸如移动光标等操作.gvim的pty是一个非常基本的ASCII终端。< / p>
普通旧vim
没有这个问题,因为它只是将subporcess直接传送到你的终端,因此所有的转义序列仍然可以工作。
您可以使用gvim -f
代替,以便为您的提交消息弹出一个新的gvim窗口。 (-f
阻止后台处理)这不是你要求的(因为你得到一个新的窗口),但它是你可以得到你所要求的最接近的,而不向vim添加完整的终端支持。
答案 1 :(得分:2)
我使用VCSCommand,一个很好的VCS包装器,适用于SVN,GIT等。 :VCSCommit
或,cc
在当前窗口下打开一个新窗口,允许您键入消息并在写入时执行实际提交。当然,你的设置中还有一个插件,但这种方便性可能是值得的。这是给我的。