Я использовал screen
много. Одна из моих мотиваций является обещанием что мои сессии редактирования (например, a vim
экземпляр), переживет X катастрофических отказов. Хотя screen
сессия действительно переживает X, я нахожу, что это не совсем применимо после того, как X перезапустил. vim
в особенности, кажется, получает некоторые странные незначительные сбои, как отказ перерисовать экран правильно; также я не могу видеть текст, который производится командой оболочки (например, :!ls
).
Я использую сборку человечности 10.04 vim-gnome
пакет. Это - версия 7.2.330-1ubuntu3
. Вероятно, важно что эта версия vim
может быть выполнен или как приложение GNOME2 GUI или как консольное приложение. Даже когда выполнено от консоли это интегрируется в некотором роде с X, например, обеспечивая доступ к буферу обмена.
Там некоторый путь состоит в том, чтобы препятствовать тому, чтобы эти проблемы произошли или восстановились с этого состояния?
Список признаков, известных в vim
экземпляры, которые пережили X катастрофических отказов:
заполнение клавишей Tab не работает над командной строкой: a ^I
символ вставляется вместо этого. Это происходит, например, при попытке завершить имя правильного файла, передаваемое как аргумент :tabedit
.
q:
не дает ответа. :^F
кажется, работает, но был немного странный запуск эти первые два раза — это, казалось, приостанавливалось без HD или активности ЦП в течение нескольких секунд перед подъемом. Тем временем я смог переместить курсор — с j
, k
, и т.д. — в области, где буферное окно командной строки позже появилось бы.
обновление: После дальнейшего контроля кажется, что это только тянет окно командной строки, когда я пытаюсь переместить курсор мимо конца строки.
^C
не работает для отмены из окна командной строки. Если я хочу уехать, не выполняя команду, я должен совершить нападки [ENTER]
на пустой строке.
команды командной строки ввели в командную строку, т.е. не из буферного окна командной строки, не добавляются к истории командной строки.
:ls
команда и другие команды, которые обычно отображают многострочный вывод, не отображают вывод. EG :echo "onefish"
работы обычно, но никакой вывод отображен в результате команды :echo "onefish\ntwofish"
.
как упомянуто выше, произведите от команд оболочки, не появляется. Команды Shell, которые используют проклятия (например, :!man ls
) действительно работать.
X регистров буфера обмена @*
и @+
недоступны: попытка к, например, вставляет через "+p
дает ошибку E353: Nothing in register +
. Я отсортировал бы, ожидают, что эта конкретная проблема будет присутствовать, и подозревать, что это может быть не связано с другими проблемами. В любом случае было бы замечательно найти решение для него.
Мое текущее обходное решение должно сделать a :mksession
и затем выход vim
и перезапустите его с той сессией. Это будет своего рода стычкой, так как у меня есть приблизительно 10 vim
выполнение экземпляров, многие с некоторыми полезными буферами без имени, vimscript переменные и другие объекты, которые не сохраняются к сессиям.
Я попробовал {griff steni.us предложение}, но ни один :redraw!
ни ^L I
кажется, имеет любое полезное действие. ^L I
действительно заставлял дисплей мигнуть.