Como usar cyg-wrapper para bifurcar uma nova aba no win32 gvim

1

Eu gostaria de configurar um alias em meu cygwin .bashrc que traduz nomes de arquivos unix-to-dos e os passa para o windows gvim em uma nova aba de uma instância existente. Eu estou tentando usar script de wrapper do Luc Hermitte para executar aplicativos win32 nativos do Cygwin como por esta ponta do vim . O exemplo de Luc de como usar o script dele é:

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

Eu não entendo este exemplo porque a maioria desses parâmetros vim (-c, - cmd, - servername, - remote-send, - remote-expr, etc) requerem mais informações, e eu não encontrei qualquer exemplo de como fornecer as informações adicionais para cyg-wrapper.sh. Por exemplo, chamando

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

abrirá o arquivo1 em uma nova guia da instância existente (ou não existente) GVIM, mas chamar gvim --servername não realiza nada por conta própria. Infelizmente, porém, a frase correspondente do cyg-wrapper não funciona:

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

Se for executado duas vezes, isso na verdade abre duas instâncias do gvim; é como se o nome do servidor 'GVIM' estivesse sendo removido e ignorado. Como você fornece um nome de servidor para gvim --servername ou um .vimrc para gvim -u usando cyg-wrapper.sh?

Além disso, por que os programas devem ser passados para o cyg-wrapper.sh na "forma mista" relativamente obscura? Por exemplo, se eu tentar

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

Eu recebo "Invalid switch -" / cygdrive "."

Veja também:

por Peter Nore 18.06.2011 / 06:12

1 resposta

1

A chave é não colocar as opções de par de valor-chave em --binary-opt. A maneira correta aqui é:

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

É um pouco mais complicado ao passar um vimrc. Eu não sabia disso, mas ao passar um vimrc, o parâmetro -u deve vir antes de outros parâmetros; isso:

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

na verdade abre três abas, uma chamada "-u", uma que abre ".vimrc" e outra com "file1". Para que o Cygwin e o gvim abram o arquivo1 em uma nova aba, depois de obter um .vimrc especificado, você precisa:

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

A ordem dos parâmetros parece ser importante. Eu posso estar errado; Eu acabei de descobrir isso experimentalmente e isso não é mencionado na documentação do GVim, mas acho que primeiro os parâmetros para cyg-wrapper.sh, como --fork = 2, então os parâmetros de letra única para o vim, como -u , em seguida, os outros parâmetros vim com hífens duplos e, finalmente, a lista de arquivos a serem abertos.

    
por 20.06.2011 / 23:16