Vim замораживается в течение короткого времени

Если Вы имеете в виду что-то как переменные в ударе, HISTCONTROL и HISTIGNORE, где

HISTCONTROL=ignorespace не загружает в Вашу историю команды, которой предшествует пространство и

HISTIGNORE=ls:cd:exit предотвращает все перечисленные команды, добавляемые к Вашей истории, затем нет - что функциональность не находится исходно в tcsh.

4
22.04.2012, 21:34
2 ответа

Для меня происходит замораживание, когда энергия назовет fsync, чтобы удостовериться, что данные, записанные в диск, не будут кэшироваться, чтобы избежать, чтобы данные проиграли. Опция улучшить ситуацию:

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

Я не знаю, является ли Вашей проблемой fsync проблема. Можно попытаться проверить его с ftrace.

Записывать трассировку:

  1. Выполненный:

    sudo trace-cmd record -e syscalls:* -f "common_pid==<pid of vim>" \
      -e sched:sched_switch -e sched:sched_wakeup -s 1000000
    
  2. Воспроизведите замораживание
  3. Прекратите записывать с Ctrl-c

Проанализировать:

  1. Выполненный:

    trace-cmd report -F "syscalls : common_pid == <pid of vim>" | sed 's/://' \
     | awk '{time = 0; if ($4 == "sys_exit:") time=$3-prev_time; prev_time=$3; \
     printf "%6.6f %6.6f %s %s %s %s %s\n", time, $3, $4, $5, $6, $7, $8}' \
     | sort -n
    
  2. Из списка любой syscalls кроме выбора или опроса исключен, чтобы быть коротким. Можно свериться с "kernelshark" gui, что произошло во время проблематичного syscall. Второй столбец в выводе awk является меткой времени, соответствующей концу syscall в трассировке.

Ваше ядро должно быть скомпилировано с CONFIG_FTRACE_SYSCALLS. Ubuntu включили это, но некоторые другие дистрибутивы могли бы пропускать ее.

2
27.01.2020, 20:58

Удостоверьтесь, что функция авточтения отключена. Это могло вызвать мгновенные замораживания, подобные тому, что Вы описываете.

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

:set dir=/tmp
:vi

Если это работает, можно принять значение по умолчанию .swp расположение файла путем добавления этого к Вашему ~/.vimrc

set dir=/tmp
1
27.01.2020, 20:58
  • 1
    Спасибо, я буду пробовать его в течение некоторого времени и видеть, происходит ли это все еще. Я надеваю; t получают второй: какое значение это имеет для изменения .swp каталога? –  Jakub M. 24.04.2012, 11:57

Теги

Похожие вопросы