Хитрость в выяснении причин, вызывающих проблемы с производительностью, состоит в том, чтобы отключить все в vim, а затем медленно вводить детали обратно, пока вы не решите, что вызывает проблемы с производительностью.
т.е. удалите (или переместите или переименуйте) следующие файлы / каталоги, чтобы быстро отключить:
C:\Program Files\Vim\_vimrc
C:\Program Files\Vim\vimfiles
C:\Program Files\Vim\vim72\autoload
C:\Program Files\Vim\vim72\plugin
В Unix / Linux / OS X эти файлы должны существовать по адресу:
~/.vim/plugin
~/.vim/autoload
Если вы не можете найти его ни в одном из этих мест, то команда :version
может показать вам, какие файлы .vimrc
используются. Каталог плагинов должен быть рядом.
Запустите vim - он будет выглядеть странно без каких-либо настроек. Но он должен работать приемлемо сейчас.
Затем начните вводить биты по частям, пока не выясните, в чем причина проблемы.
Я сделал это и обнаружил, что следующие стандартные плагины вызывают проблемы при использовании Vim через VPN:
- matchparen.vim
- netrwPlugin.vim
- vimballPlugin.vim
Большинство проблем, возникающих в этих плагинах, - это добавление новых autocmds (как во время BufEnter), которые неэффективны при редактировании удаленных файлов. Вы также можете обнаружить, что у вас есть собственные плагины, которые могут вызывать проблемы с производительностью.
Затем я написал функцию для удаления этих autocmds при удаленной работе:
let g:NotEditingRemotely = 1
function! s:ToggleRemoteFile()
if exists("g:NotEditingRemotely")
" Disable the matchparen.vim plugin"
:NoMatchParen
" Turn off detection of the type of file"
filetype off
" Disable the netrwPlugin.vim"
au! Network
au! FileExplorer
" Remove tag scanning (t) and included file scanning (i)"
set complete=.,w,b,u,k
" Remove these autocommands which were added by vimBallPlugin.vim"
au! BufEnter *.vba
au! BufEnter *.vba.gz
au! BufEnter *.vba.bz2
au! BufEnter *.vba.zip
unlet g:NotEditingRemotely
:echo 'Remote Edit mode turned on'
else
" Enable the matchparen.vim plugin"
:DoMatchParen
" Turn on detection of files"
filetype on
" Add back in tag scanning (t) and included file scanning (i)"
set complete=.,w,b,u,t,i,k
let g:NotEditingRemotely = 1
:echo 'Remote Edit mode turned off'
endif
endfunction
command! -nargs=0 ToggleRemoteFile call s:ToggleRemoteFile()
noremap <F6> :ToggleRemoteFile<CR>
Вставьте ваш vimrc и посмотрите, будет ли он иметь значение.