1

Следуя этому вопросу, я обнаружил, что могу использовать --servername <name> и --remote в моем исполняемом файле консоли vim под Cygwin.

Поэтому я установил vim-common vim и gvim и у меня нет таких опций в /bin/vim . Доступны только с /bin/gvim . К сожалению, я не хочу использовать версию gvim для vim .

Я думал, что проблема была в том, что vim не был собран с поддержкой X. Поэтому я создал Vim с нуля с помощью ./configure --with-x . Это ничего не меняет.

Как я могу использовать сервер vim на консольной версии Vim?

2 ответа2

2

Предполагая, что у вас есть правильно скомпилированный экземпляр Vim, вы должны запустить X-сервер Cygwin. У меня настроен запуск при входе на компьютер с Windows с помощью командной строки:

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

Затем я убедился, что в моем ~/.bash_profile установлен DISPLAY:

DISPLAY=:0.0; export DISPLAY

Это дает дополнительное преимущество, заключающееся в том, что я могу использовать gVim от Cygwin, хотя я предпочитаю использовать собственный экземпляр Windows gVim.

2

Убедитесь, что libX11-devel и libXt-devel установлены. Если у вас установлена последняя версия cygwin, вам может потребоваться исправить файл src/mbyte.c для компиляции Vim 7.4 с +clientserver и +X11.

проверьте libX11-devel и 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

Применить патч Леха Лоренса src/mbyte.c

https://groups.google.com/forum/#!topic/vim_dev/OJjnbKQ7oYU

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__)
    /*

скомпилировать Vim 7.4 + клиентсервер + 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

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