Соединение cscope Vim разрывается при каждом повторном подключении экрана GNU

Я запускаю vim с cscope в своей среде разработки C. Я запускаю vim в окне GNU screen на сервере freebsd 6.3 и устанавливаю соединение cscope db с cs add .... На этом этапе все работает без нареканий.

Если я отсоединяю сеанс экрана и снова подключаю его, любые попытки использовать cscope приводят к тому, что cscope выгружает ядро. Это все, что у меня есть из дампа ядра, так как мой cscope не скомпилирован с отладочными символами:

(gdb)
#0  0x480f45dc in ungetch () from /lib/libncurses.so.6
(gdb)

Насколько я знаю, нет необходимости восстанавливать соединение cscope на vim, когда я снова подключаюсь к экрану. Это нанесет ущерб цели использования экрана. Кто-нибудь знает, что происходит и есть ли обходной путь? Если ничего не получится, я найду время, чтобы скомпилировать cscope с символами и выяснить, что происходит.

Если это поможет, моя БД cscope создается с помощью:

cscope -bkq -P`pwd` -i cscope.files

person jman    schedule 04.01.2012    source источник


Ответы (2)


Оказывается, это проблема, исправленная в cscope 15.7a. Публикация ответа здесь на случай, если у кого-то еще возникнет такая же проблема (это беспокоило меня пару лет, прежде чем я решил опубликовать здесь).

person jman    schedule 06.01.2012
comment
Сойдет, я думаю, мне нужно подождать несколько часов для этого. - person jman; 06.01.2012

Учитывая, что он вылетает из-за проклятий, хотя vim собирается вызывать cscope -l (линейный режим), я думаю, разумно предположить, что TERM=screen связано с вашей проблемой. Я бы попробовал сделать оболочку (например, в $HOME/bin, предполагая, что это до /usr/local/bin на вашем пути), чтобы изменить ее:

#!/bin/sh

if ! test -t 0
then
    TERM=vt100
fi

exec /usr/local/bin/cscope "$@"

В котором говорится: «Если не работает с tty, поддельный TERM». Тест tty должен попытаться избежать нарушения интерактивного использования. Вы также можете попробовать TERM=none или другие значения.

person Ben Jackson    schedule 01.03.2013
comment
Я проверю это и отпишусь здесь, похоже, это может быть он! - person jman; 02.03.2013