вызовите vi изнутри vim (полезно для svn commit) - PullRequest
1 голос
/ 11 февраля 2012

Я использую RedHat EL 5. Я использую gvim 7.1, скомпилированный с использованием GTK.То, что я хочу, это иметь возможность делать SVN-коммит (который использует vi / vim) изнутри gvim.В настоящее время единственная проблема состоит в том, что я получаю вывод, который искажен.Например, вызов:! 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.

Спасибо, Нахум

Ответы [ 2 ]

4 голосов
/ 11 февраля 2012

Не используйте vi в качестве команды, вместо этого используйте gvim -f.

Проблема в том, что vi (или vim в консоли) требуется терминал, который может выполнять такие вещи, какперемещать курсор и т. д. pty gvim является очень простым ASCII-терминалом.

Обычный старый vim не имеет этой проблемы, потому что он просто передает подпроцесс непосредственно на ваш терминал, следовательно, всеescape-последовательности все еще работают.

Вместо этого вы можете использовать gvim -f, чтобы появилось новое окно gvim для вашего сообщения о коммите.(-f предотвращает фоновую обработку) Это не совсем то, что вы просили (так как вы получаете новое окно), но это самое близкое, что вы можете получить к тому, что вы просили, не добавляя полную поддержку терминала в vim.

2 голосов
/ 11 февраля 2012

Я использую VCSCommand , хорошую оболочку VCS, которая работает с SVN, GIT и другими. :VCSCommit или ,cc открывает новое окно под текущим, позволяет вам напечатать ваше сообщение и выполнить фактическую фиксацию при записи. Конечно, это еще один плагин в вашей настройке, но удобство может стоить того. Это для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...