ВИМ медленно с синтаксисом Руби подсветка

Я'вэ было использовать Vim по SSH на работу на неделю или две и все было отлично. Сегодня я решил добавить подсветку синтаксиса, автозаполнение и другие общие приложения. Настроить vundle и пошел на работу.

<дель> мой нынешний .vimrc можно найти на https://github.com/scottopell/dotfiles/blob/master/.vimrc </дель>

Я клонированные мой vimrc и файлы Vim на моем локальном рабочем столе и vim работает точно так, как и ожидалось, никакой медлительности на любые файлы, которые я могу найти. Же плагины и же vimrc и нет медлительности на Ruby файлы.

обновление

Я могу воспроизвести эту проблему со следующим .vimrc

syntax on

и пустой ~/.папка ВИМ.

Однако, Vim на этом VPS-это очень медленно, с Рубином/Haml файлов. Много файлов более рубиновый. Когда я открываю любой файл Руби, запуск занимает около 2 секунд (время --startuptime). С сопоставимым длина файла Haml, ее около 5 секунд. Эта неторопливость это'Т просто при запуске либо, перемещение и редактирование файла оба мучительно медленно.

Haml на/Эрб(они практически одинаковы)

268.818  000.005: before starting main loop
848.871  580.053: first screen update

Рубиновый

199.613  000.004: before starting main loop
2937.859  2738.246: first screen update

Без подсветки синтаксиса по тому же Руби файл, что и выше

149.047  000.004: before starting main loop
152.912  003.865: first screen update 

<дель> Я пробовал через МОСХ(http://mosh.mit.edu) и это не'т помочь.</дель> не очень актуальны

Как вы можете увидеть в моем .файл vimrc, я пробовал несколько разных решений этой проблемы. Я попытался запустить все плагины отключены (я их переложил все с ~/ВИМ/пачка/PLUGINNAME в ~/ВИМ/пачка/инвалидов/PLUGINNAME, это правильно?), установить путь Руби, набор foldlevel к инструкцию, моя схема отключен, ничего не помогает. см. edit3

Я могу отправить полный лог startupttime к файлам, если это поможет. Я проверил несколько других языков(PHP, с, питоном, vimL) и не испытывать каких-либо подтормаживаний.


Редактировать: просто чтобы прояснить, я бегу сеанс SSH с SSH пользователь@сервер внутри сервера я делаю в Vim файл.РБ.

EDIT2: я просто попытался доступ к серверу напрямую и медленность сохраняется без СШ, я обновлен, чтобы отразить, что это'т проблема с SSH.

EDIT3: я могу воспроизвести проблему с помощью .файл vimrc, который содержит синтаксис в единственной строке о с пустым ~/.папка ВИМ

EDIT4 я удалили мой скомпилированную версию Vim и все версии, что я, возможно, установленные через apt, вручную удалил все ВИМ вещи из моей системе, и я могу запустить Vim с `ВИМ -у не /путь/к/файлу.РБ-тогда :сын и этот вопрос будет там. Файл в вопрос является контроллером рельсы, но, как я'вэ сказал, что я могу воссоздать его в какой-то степени большинство файлам, но контроллеры рельсы видеть, чтобы быть худшим.

Комментарии к вопросу (19)
Решение

Решение этой проблемы оказалось движок регулярных выражений, что ВИМ использует. Спекуляции на #ВИМ на Freenode является то, что синтаксис Руби файлы использовать то, что медленнее на новом движке регулярных выражений.

Любая версия старше, и в том числе ВИМ 7.3.969 имеет старый движок регулярных выражений. Добавить в набор для re=1своейvimrc, чтобы заставить старого регулярное выражение двигателя на любой версии новее (и Дон&#39;т забудьте перезагрузить файл, который вы&#39;вновь в настоящее время редактирования, С:Е`).

Благодаря Houl, Долио и dmedvinsky от #Vim для помогите разобраться.

Я не'т получил шанс попробовать абсолютная последняя версия, там был совершить прошлой ночью, что может помочь с этим вопросом. Я буду обновлять это, если я получу шанс попробовать снова кровотечение край версия.

Комментарии (13)

Вы должны установить этот параметр TW в ваш vimrc:

set ttyfast
set lazyredraw

Если это не решает вашу проблему, попробуйте запустить Vim без вашего vimrc, чтобы быть уверенным, что ни один из ваших текущих настроек будут все портить.

vim -u NONE
Комментарии (7)

Две вещи, которые существенно помогут ускорить выделение синтаксиса Руби отключении линии курсора и относительное число рубиновых (если вы пользуетесь таковым).

У меня есть следующая в моем .vimrc:

" Ruby is an oddball in the family, use special spacing/rules
if v:version >= 703
  " Note: Relative number is quite slow with Ruby, so is cursorline
  autocmd FileType ruby setlocal ts=2 sts=2 sw=2 norelativenumber nocursorline
else
  autocmd FileType ruby setlocal ts=2 sts=2 sw=2
endif
Комментарии (4)

Попробуйте установить прямо вашем пути рубиновый в ваш vimrc:

let g:ruby_path="/usr/bin/ruby"
Комментарии (6)

Я'м через ВИМ 7.4.52 и ни одно из этих решений работал для меня.

По данным этого сайта GitHub комментировать этот вопрос (https://github.com/vim/vim/issues/282#issuecomment-169837021), `foldmethod=синтаксис отвечает за нерасторопность.

Добавление этого к моей .vimrc наконец-то починил!

augroup ft_rb
    au!
    " fix the SLOOOW syntax highlighting
    au FileType ruby setlocal re=1 foldmethod=manual
augroup END
Комментарии (1)

см. обновление внизу.

это может быть полезно в качестве обходного пути -

я использую Vim версии

ВИМ - VI улучшена 7.4 (2013 августа 10, составленного 2 января 2014 19:40:46)

включены патчи: 1-52

это стоковая версия с Линукс Минт 17.1 Ребекка.

в PHP.файл синтаксиса Vim-это не версия'd, что я вижу, но это СЭЗ последнее редактирование'd с 28 августа 13.

это'т проект Ruby, но при редактировании большого файла php класс (

    $ php -w test.inc | wc
    2    2410   19220

) я отмечаю значительные задержки в верхней части класса, но не выше или ниже классом, и, в частности, не в нижней части класса. как я пытаюсь вставить новый текст в нижней части класса, задержка минимальна и, кажется, будет пропорционален количеству линий внутри класса. на "минимальный" - А означает, практически мгновенно, что "значительные" у означает 1 до 1,5 секунд на символ.

файла составляет около 1800 линий с приблизительно 500 строк законным PHP и 1300 строк в комментариях и DOC. занятие начинается в линии около 30 и заканчивается на линии около 1700. он признал, что это'немного большая, но хорошо документированы :-\

если я вставлю

    class dummy { }

в том, что "оригинал имя класса {" и, нет никакой задержки в любом месте в файле. этот неприглядный Клюге разрешений в Vim/GVim выступает восстановить свои реакции и может рассматриваться как временное решение. Примечание нет перевода строки между двумя, просто

    class dummy { } class originalName {

он даже может быть комментарий'd вне:

    /*class dummy {}*/class originalName {

дополнительные информация:

  1. во время этого теста, каталог плагинов был перенесен.

  2. с "помощью&quot синтаксис set=выключить;, проблема полностью исчезает. это не исправить.

  3. установив обработчик регулярных выражений с

набор regexpengine=1 (или любое другое количество) не заметно изменить результаты.

основываясь на этих результатах, я подозреваю, а также механизм регулярных выражений. моя точка зрения заключается в том, что дурачусь немного синтаксис в Ruby файлов может привести к временное решение.

Обновление: я обнаружил, что проблема есть "вызвали" и установив php_folding 1 (включено). в vimrc я думал, что я был через не было, но хоть какая-то загадка решается из-за этой ошибки. простой vimrc, как это будет вызывать проблемы (для меня, по крайней мере):

    :syntax enable
    :let php_folding = 1

это означает, что мой вопрос совершенно не связан с вопросом Руби, но там может быть нечто подобное происходит с Рубином.файл Vim. может и нет.

извиняюсь за отклонение.

Комментарии (0)

Я попробовал большинство из этих решений, но то, что в конечном итоге работает для меня лучше, удалял все плагины, связанные с авиакомпанией.

Комментарии (3)