从vim中调用vi(对svn commit很有用)

时间:2012-02-10 22:08:07

标签: linux vim

我使用的是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

2 个答案:

答案 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在当前窗口下打开一个新窗口,允许您键入消息并在写入时执行实际提交。当然,你的设置中还有一个插件,但这种方便性可能是值得的。这是给我的。