Как использовать cyg-обертку для раскрутки новой вкладки в win32 gvim
Я хотел бы настроить псевдоним в моем cygwin .bashrc, который переводит имена путей unix-to-dos и передает их в windows gvim на новой вкладке существующего экземпляра. Я пытаюсь использовать скрипт cyg-wrapper от Luc Hermitte для запуска нативных приложений 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 ответ
Ключ заключается в том, чтобы не помещать параметры пары ключ-значение в --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 с двойными дефисами и, наконец, список файлов, которые нужно открыть.