1

Я хотел бы настроить псевдоним в моем cygwin .bashrc, который переводит имена путей unix-to-dos и передает их в windows gvim на новой вкладке существующего экземпляра. Я пытаюсь использовать скрипт cyg-wrapper Люка Эрмита для запуска собственных приложений win32 из Cygwin согласно этому совету vim. Пример использования Люком своего сценария:

alias vi= 'cyg-wrapper.sh "C:/Progra~1/Edition/vim/vim63/gvim.exe"
    --binary-opt=-c,--cmd,-T,-t,--servername,--remote-send,--remote-expr'

Я не понимаю этот пример, потому что большинство этих параметров vim (-c, - cmd, - servername, - remote-send, - remote-expr и т.д.) Требуют дополнительной информации, и я не нашел ни одного примера как предоставить дополнительную информацию в cyg-wrapper.sh. Например, позвонив

C:/Progra~1/Edition/vim/vim63/gvim.exe --servername=GVIM 
   --remote-tab-silent file1 &

откроет file1 в новой вкладке существующего (или несуществующего) экземпляра GVIM, но вызов gvim --servername ничего не даст . К сожалению, соответствующая фраза cyg-wrapper не работает:

cyg-wrapper.sh "C:/Progra~1/Edition/vim/vim63/gvim.exe"
    --binary-opt=--servername=GVIM,--remote-tab-silent --fork=2 file1

Если запустить дважды, это фактически откроет два экземпляра gvim; как будто имя сервера 'GVIM' удаляется и игнорируется. Как вы предоставляете имя сервера для gvim --servername или .vimrc для gvim -u используя cyg-wrapper.sh?

Кроме того, почему программы должны передаваться в cyg-wrapper.sh в относительно неясной «смешанной форме»?«Например, если я попытаюсь

cyg-wrapper.sh "/cygdrive/c/path/to/GVimPortable.exe"
        --binary-opt=--servername=GVIM,--remote-tab-silent --fork=2

Я получаю "Неверный переключатель -"/cygdrive "."

Смотрите также:

1 ответ1

1

Ключ заключается в том, чтобы не помещать параметры пары ключ-значение в --binary-opt. Правильный путь здесь:

cyg-wrapper.sh "C:/Progra~1/Edition/vim/vim63/gvim.exe" --fork=2 
  --servername=GVIM --remote-tab-silent .bashrc.

Это немного сложнее при переходе в vimrc. Я этого не знал, но при передаче в vimrc параметр -u должен приходить раньше других параметров; этот:

cyg-wrapper.sh "C:/Progra~1/Edition/vim/vim63/gvim.exe" --fork=2 
      --servername=GVIM --remote-tab-silent -u ~/.vimrc file1

на самом деле откроет три вкладки, одну с именем «-u», одну с «.vimrc» и одну с «file1». Чтобы Cygwin и gvim открыли file1 на новой вкладке после поиска указанного .vimrc, вам нужно:

cyg-wrapper.sh "C:/Progra~1/Edition/vim/vim63/gvim.exe" --fork=2 
      -u ~/.vimrc --servername=GVIM --remote-tab-silent file1

Порядок параметров представляется важным. Я могу ошибаться; Я только что понял это экспериментально, и это не упомянуто в документации GVim, но я думаю, что сначала идут параметры для cyg-wrapper.sh, такие как --fork = 2, затем однобуквенные параметры для vim, такие как -u затем другие параметры vim с двойными дефисами и, наконец, список файлов, которые нужно открыть.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .