Буфер обновления VIM всякий раз, когда я переключаюсь на него - PullRequest
1 голос
/ 02 марта 2011

Я использую VIM для редактирования файлов через SCP, поэтому чтение и запись файлов - это очень медленный процесс.

По какой-то причине, когда я переключаюсь в буфер, VIM читает его с диска. Строка состояния говорит: ~@k.

Я отключил все автокоманды в моем .vimrc, и у меня все равно нет автокоманд для BufEnter. Есть идеи, чего мне не хватает?

Обновление: я нашел одного преступника, макрос подсчета слов, который не был автоматической командой. Теперь, когда я переключаюсь, это немного быстрее, но все еще медленно. Строка состояния говорит ^ Ww.

Обновление 2: я попробовал ответ ZyX ниже (Спасибо !!). Результаты:

1) установка eventignore = все абсолютно решает это; это пылает быстро. НО 2) попытка отладки у меня не работает.

Я попробовал оба :debug buffer scp-buffer-name и :debug wincmd p и получил:

Вход в режим отладки. Для продолжения введите «продолжение».

cmd: wincmd p

строка 1: для m в фильтре (copy (fuf # getModeNames ()), 'fuf # {v: val} #requiresOnCommandPre ()') `

И тогда, независимо от того, что я напечатал (s, n, "cont"), эта строка просто повторяется. Это, очевидно, связано с плагином Fuzzy Finder, который я использую довольно часто, и является ключевой причиной для меня, чтобы использовать VIM. Есть идеи?

Еще раз спасибо за вашу помощь. Очень ценится, XyZ!

ВОПРОС РЕШЕНО: Это был действительно Fuzzy Finder. Он имеет режим MRU-File, примечания к документации которого могут вызвать проблемы с производительностью при переключении буферов. Я отключил этот режим, и теперь VIM снова быстр! Спасибо!

1 Ответ

4 голосов
/ 02 марта 2011

Сначала проверьте это поведение с помощью set eventignore=all.Если проблема будет решена, попробуйте переключиться в буфер scp с помощью (убедитесь, что у вас установлено unsettignore) debug buffer scp-buffer-name или debug wincmd p (в зависимости от того, когда вы видите проблему), откроется режим отладки, и вы сможете увидетьвсе автокоманды, которые он выполняет (используйте s[tep] или n[ext] для перехода к следующей команде, см. :h >next и :h >step для получения дополнительной информации).

...