У меня есть следующие настройки: ноутбук с Windows 7 с установленным Xming и FreeBSD с GVIM в VirtualBox. Я настроил все (установил переменную DISPLAY env, открыл порты, разрешил Xming принимать соединения извне localhost и т.д.), Чтобы при запуске программы в оболочке во FreeBSD она открывалась как другое окно на моем рабочем столе. В принципе все работает.
За исключением того, что не совсем. Я использую эту настройку в основном для GVIM, и она работает очень хорошо, если это единственная открытая удаленная программа за раз. В большинстве случаев это не проблема, но иногда я хочу открыть еще одну X-программу рядом с vim (в основном urxvt или gqview). В этом случае изменение фокуса с GVIM на другое удаленное приложение и обратно приводит к зависанию GVIM на несколько секунд, а затем он возобновляет работу, как и раньше. Клавиши не теряются, и кнопка "X" работает (убивает GVIM). Другие удаленные приложения не отображают это поведение.
В принципе, каждый раз, когда я делаю alt+tab для другого (но только удаленного!) окно, gvim перестает отвечать на некоторое время (в среднем около 15-20 секунд).
У меня есть еще одна физическая коробка с FreeBSD и GVIM, и она отображает точно такое же поведение. Я скомпилировал GVIM из портов со следующими параметрами, как указано в :version
:
Duża wersja z GTK2 GUI. Opcje włączone (+) lub nie (-):
+arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset +cindent +clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments +conceal
+cryptv +cscope +cursorbind +cursorshape +dialog_con_gui +diff +digraphs +dnd -ebcdic +emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path +find_in_path
+float +folding -footer +fork() +gettext -hangul_input +iconv +insert_expand +jumplist +keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap -lua +menu
+mksession +modify_fname +mouse +mouseshape +mouse_dec -mouse_gpm -mouse_jsbterm +mouse_netterm +mouse_sysmouse +mouse_xterm +multi_byte +multi_lang -mzscheme
+netbeans_intg -osfiletype +path_extra -perl +persistent_undo +postscript +printer -profile +python -python3 +quickfix +reltime +rightleft +ruby +scrollbind +signs
+smartindent -sniff +startuptime +statusline -sun_workshop +syntax +tag_binary +tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title +toolbar
+user_commands +vertsplit +virtualedit +visual +visualextra +viminfo +vreplace +wildignore +wildmenu +windows +writebackup +X11 -xfontset +xim +xsmp_interact
+xterm_clipboard -xterm_save
vimrc systemu: "$VIM/vimrc"
vimrc użytkownika: "$HOME/.vimrc"
exrc użytkownika: "$HOME/.exrc"
gvimrc systemu: "$VIM/gvimrc"
gvimrc użytkownika: "$HOME/.gvimrc"
systemowy plik menu: "$VIMRUNTIME/menu.vim"
odwet dla $VIM-a: "/usr/local/share/vim"
Kompilacja: cc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -D_THREAD_SAFE -D_REENTRANT -I/usr/local/include/gtk-2.0 -I/usr/local/lib/gtk-2.0/include -I/usr/local/inc
lude/atk-1.0 -I/usr/local/include/cairo -I/usr/local/include/gdk-pixbuf-2.0 -I/usr/local/include/pango-1.0 -I/usr/local/include/gio-unix-2.0/ -I/usr/local/include -I/us
r/local/include/glib-2.0 -I/usr/local/include/pixman-1 -I/usr/local/include/freetype2 -I/usr/local/include/libpng -I/usr/local/include -O2 -pipe -fno-strict-aliasing
-D_FORTIFY_SOURCE=1
Konsolidacja: cc -L/usr/local/lib -lXt -L. -L/usr/lib -rpath=/usr/lib:/usr/local/lib -pthread -rdynamic -L/usr/local/lib -Wl,--as-needed -o vim -pthread -L/usr/lo
cal/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lpangocairo-1.0 -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXcomposite -lXdamage -lgdk_pixbuf-2.0 -lpangoft2-1.
0 -lgio-2.0 -lXfixes -lcairo -lX11 -lpango-1.0 -lm -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lSM -lICE -lXpm -lXt -lXdmcp -lSM -l
ICE -lm -lelf -pthread -ltermlib -liconv -lintl -L/usr/local/lib/python2.7/config -lpython2.7 -lutil -lm -Wl,--export-dynamic -Wl,-R -Wl,/usr/local/lib
-L/usr/local/lib -lruby18 -lcrypt -lm -L/usr/lib -rpath=/usr/lib:/usr/local/lib -pthread
Пожалуйста, скажите мне одну из двух вещей: что нужно сделать, чтобы такое поведение исчезло, или где еще я мог бы задать этот вопрос, чтобы получить наибольшую вероятность получения ответа?
Спасибо!