Vimserver no Cygwin

1

Seguindo para essa pergunta , Descobri que posso usar --servername <name> e --remote no meu executável do console vim sob o Cygwin.

Então instalei vim-common vim e gvim e não tenho essas opções em /bin/vim . Existem apenas disponíveis com /bin/gvim . Infelizmente, não quero usar a versão gvim de vim .

Eu achei que o problema era que o vim não era compilado com o suporte do X. Então criei o Vim do zero com ./configure --with-x . Isso não muda nada.

Como posso usar o servidor vim na versão de console do Vim?

    
por nowox 27.05.2015 / 13:30

2 respostas

2

Certifique-se de que libX11-devel e libXt-devel estejam instalados. Se a sua instalação do cygwin estiver atualizada, talvez seja necessário fazer o patch src / mbyte.c para compilar o Vim 7.4 com + clientserver e + X11.

verifique libX11-devel e libXt-devel

# vim configure log
#$ grep X_LIB src/auto/config.log
GUI_X_LIBS=''
X_LIB='-lXt -lX11'
X_LIBS=' '

# cygwin
#$ cygcheck.exe -c | grep libX11-devel
libX11-devel                            1.6.3-1                          OK
#$ cygcheck.exe -c | grep libXt-devel
libXt-devel                             1.1.4-2                          OK

Aplique o patch src / mbyte.c da Lech Lorens

link

diff --git a/src/mbyte.c b/src/mbyte.c
 index 6340992..cb14a25 100644
--- a/src/mbyte.c
+++ b/src/mbyte.c
@@ -83,10 +83,18 @@
 # ifndef WIN32_LEAN_AND_MEAN
 #  define WIN32_LEAN_AND_MEAN
 # endif
-# include <windows.h>
+# if defined(FEAT_GUI) || defined(FEAT_XCLIPBOARD)
+#  include <X11/Xwindows.h>
+#  define WINBYTE wBYTE
+# else
+#  include <windows.h>
+#  define WINBYTE BYTE
+# endif
 # ifdef WIN32
 #  undef WIN32     /* Some windows.h define WIN32, we don't want that here. */
 # endif
+#else
+# define WINBYTE BYTE
 #endif

 #if (defined(WIN3264) || defined(WIN32UNIX)) && !defined(__MINGW32__)
@@ -698,7 +706,7 @@ codepage_invalid:
        /* enc_dbcs is set by setting 'fileencoding'.  It becomes a Windows
     * CodePage identifier, which we can pass directly in to Windows
     * API */
-       n = IsDBCSLeadByteEx(enc_dbcs, (BYTE)i) ? 2 : 1;
+       n = IsDBCSLeadByteEx(enc_dbcs, (WINBYTE)i) ? 2 : 1;
 #else
 # if defined(MACOS) || defined(__amigaos4__)
    /*

compilar Vim 7.4 + clienterver + X11

#$./configure --with-x
#$ make
#$ ./src/vim.exe --version
VIM - Vi IMproved 7.4 

Normal version without GUI.  Features included (+) or not (-):

+clientserver    -hangul_input    +netbeans_intg   +title

+digraphs        +mksession       +scrollbind      +X11

#$ ./src/vim.exe --serverlist
TEST
    
por 28.05.2015 / 05:31
2

Supondo que você tenha uma instância adequadamente compilada do Vim, você deve executar o servidor cygwin X. Eu tenho o meu conjunto para iniciar quando eu logar na minha máquina Windows, com a linha de comando:

C:\cygwin64\bin\XWin.exe -multiwindow

Depois, certifico-me de ter o DISPLAY configurado no meu ~/.bash_profile :

DISPLAY=:0.0; export DISPLAY

Isso tem o benefício adicional de poder usar o gVim do cygwin, embora eu prefira uma instância nativa do gVim do Windows.

    
por 27.05.2015 / 21:01

Tags