OS == FreeBSD-12.1p2
Vim == 8.1.2372
Я столкнулся с проблемой, связанной с чрезмерно медленным временем запуска vim только на одной системе. Содержимое vim --startuptime vim_startuptime.log
выглядит следующим образом:
times in msec
clock self+sourced self: sourced script
clock elapsed: other lines
000.030 000.030: --- VIM STARTING ---
000.166 000.136: Allocated generic buffers
000.293 000.127: locale set
000.307 000.014: GUI prepared
000.309 000.002: clipboard setup
000.334 000.025: window checked
001.000 000.666: inits 1
001.064 000.064: parsing arguments
001.066 000.002: expanding arguments
001.136 000.070: shell init
001.795 000.659: Termcap init
001.846 000.051: inits 2
002.060 000.214: init highlight
003.900 001.183 001.183: sourcing /usr/local/share/vim/vim81/syntax/syncolor.vim
. . .
018.890 001.561: loading plugins
018.997 000.107: loading packages
019.028 000.031: loading after plugins
019.077 000.049: inits 3
019.197 000.120: reading viminfo
75047.076 75027.879: setup clipboard
75047.146 000.070: setting raw mode
75047.161 000.015: start termcap
75047.191 000.030: clearing screen
75047.457 000.266: opening buffers
75047.551 000.094: BufEnter autocommands
75047.555 000.004: editing files in windows
75047.741 000.186: VimEnter autocommands
75047.744 000.003: before starting main loop
75048.149 000.405: first screen update
75048.151 000.002: --- VIM STARTED ---
Однако, если я отключаю X, то это результат (vim -X --startuptime vim_startuptime-X.log
):
times in msec
clock self+sourced self: sourced script
clock elapsed: other lines
000.030 000.030: --- VIM STARTING ---
000.165 000.135: Allocated generic buffers
000.293 000.128: locale set
000.309 000.016: GUI prepared
000.310 000.001: clipboard setup
000.336 000.026: window checked
001.009 000.673: inits 1
001.074 000.065: parsing arguments
001.076 000.002: expanding arguments
001.146 000.070: shell init
001.801 000.655: Termcap init
001.853 000.052: inits 2
002.067 000.214: init highlight
003.936 001.214 001.214: sourcing /usr/local/share/vim/vim81/syntax/syncolor.vim
. . .
019.029 001.555: loading plugins
019.137 000.108: loading packages
019.168 000.031: loading after plugins
019.192 000.024: inits 3
019.307 000.115: reading viminfo
019.309 000.002: setup clipboard
019.363 000.054: setting raw mode
019.376 000.013: start termcap
019.402 000.026: clearing screen
019.811 000.409: opening buffers
019.856 000.045: BufEnter autocommands
019.859 000.003: editing files in windows
020.005 000.146: VimEnter autocommands
020.008 000.003: before starting main loop
020.390 000.382: first screen update
020.391 000.001: --- VIM STARTED ---
Я подключаюсь к этой системе с помощью ssh -X -t
и обычно используют gvim для отображения окна редактирования на моем рабочем столе. Когда я делаю это на проблемном хосте в дополнение к длительной задержке, я получаю сообщение о том, что дочерний процесс не может открыть GUI. Ранее я запускал gvim на этом хосте без проблем.
Оба файла / etc / ssh / sshd_config обоих хостов идентичны, за исключением адреса прослушивания. Yhe записи X11 в каждом перечислены ниже:
grep -in x11 /etc/ssh/sshd_config
102:#X11Forwarding yes
103:#X11DisplayOffset 10
104:#X11UseLocalhost yes
147:# To allow ssh tunneling in jails set X11UseLocalhost to NO
148:X11UseLocalhost no
174:# X11Forwarding no
У меня есть идентично настроенный хост (аппаратное обеспечение, ОС, sshd_config), к которому я также подключаюсь через ssh -X -t
, где эта проблема не возникает. Я попытался удалить и переустановить vim на проблемном хосте, без разницы.
Аналогичным образом я удалил каталог .vim и файл .viminfo из домашнего каталога пользователя. Это не повлияло на время запуска. В любом случае эта проблема не ограничивается одним идентификатором пользователя.
Журнал отладки (vim -V9vim_startup_debug.log
) содержит следующее:
. . .
Searching for "/usr/local/share/vim/vimfiles/after/plugin/**/*.vim"
Searching for "/root/.vim/after/plugin/**/*.vim"
not found in 'runtimepath': "plugin/**/*.vim"
Reading viminfo file "/root/.viminfo" info oldfiles
Opening the X display failed
Executing BufEnter Autocommands for "*"
autocommand sil call s:LocalBrowse(expand("<amatch>"))
. . .
Я открыт для предложений относительно того, как решить эту проблему проблема. Очевидно, что переадресация X11 так или иначе связана с тем, что проблема заключается в настройке буфера обмена, но я понятия не имею, как выяснить, в чем именно заключается проблема.