在此之后问题之后,我发现我可以在 Cygwin 下使用--servername <name>
并--remote
在我的控制台上运行 vim 可执行文件。
所以我安装了vim-common
vim
和gvim
,但在 中没有这样的选项/bin/vim
。只有 可用/bin/gvim
。不幸的是,我不想使用gvim
版本vim
。
我以为问题是 vim 不支持 X。所以我用 从头构建了 Vim ./configure --with-x
。这并没有改变任何东西。
如何在 Vim 的控制台版本上使用 vim 服务器?
答案1
确保安装了 libX11-devel 和 libXt-devel。如果您的 cygwin 安装是最新的,则可能必须修补 src/mbyte.c 才能使用 +clientserver 和 +X11 编译 Vim 7.4。
检查 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
应用 Lech Lorens 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
答案2
假设您有一个正确编译的 Vim 实例,则必须运行 cygwin X 服务器。我已将其设置为在登录 Windows 计算机时启动,命令行如下:
C:\cygwin64\bin\XWin.exe -multiwindow
然后我确保在我的~/.bash_profile
:中设置了 DISPLAY:
DISPLAY=:0.0; export DISPLAY
这有一个额外的好处,我可以使用 cygwin 的 gVim,尽管我倾向于使用本机的 Windows gVim 实例。