linux - 从 vim 中调用 vi(对 svn 提交很有用)

标签 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 调用时看起来正确。

谢谢, 那鸿

最佳答案

不要使用 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/

相关文章:

python - 在 Python 中接收 UDPv6 多播

php - 无法在centos 6.5和php 5.4中安装php mongo扩展

linux - 如何使用参数创建 grep 别名

git - 更改 Fugitive 的 Gstatus 窗口高度

go - Vim 用外部命令的输出替换文件中的内容

vim - 从 IdeaVim 转至 IntelliJ IDEA 快捷方式

linux - 打开 shell 时出现不需要的消息

java - Jenkins 执行 Maven 时使用了错误的 Java 版本

vim - 在 vim 中用连字符替换驼峰式大小写

vim - Emacs 相当于 Vim 的命令历史记录(用于键入 Meta-x 命令)