Как установить запись terminfo (eterm-color из Emacs)?

Я хочу запустить GNU Screen из буфера терминального режима Emacs. Когда я пытаюсь это сделать, я получаю сообщение об ошибке:

$ screen
Cannot find terminfo entry for 'eterm-color'.

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

Первая попытка заключалась в использовании переменной окружения TERMINFO.

Мой .bashrc:

export TERMINFO=~/.terminfo

Затем я сделал:

$ mkdir -p ~/.terminfo/e/
$ cp /usr/local/Cellar/emacs/23.3a/share/emacs/23.3/etc/e/* ~/.terminfo/e/

В буфере терминального режима не найдена запись eterm-color. В нем говорится, что он получает цвет eterm из TERMCAP, а не из реального файла.

$ infocmp
#       Reconstructed via infocmp from file: TERMCAP
eterm-color,
        am, mir, xenl,
        colors#8, cols#138, it#8, lines#41, pairs#64,
        bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M,
        csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
        cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
        cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
        dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
        el=\E[K, el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@,
        il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, kbs=\177,
        kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
        kdch1=\E[3~, kend=\E[4~, khome=\E[1~, knp=\E[6~, kpp=\E[5~,
        nel=^M^J, op=\E[39;49m, rc=\E8, rev=\E[7m, rmir=\E[4l,
        rmso=\E[27m, rmul=\E24m, rs1=\Ec, sc=\E7, setab=\E[4%p1%dm,
        setaf=\E[3%p1%dm, sgr0=\E[m, smir=\E[4h, smso=\E[7m,
        smul=\E[4m,

Вторая попытка заключалась в использовании символических ссылок.

$ sudo mkdir /usr/share/terminfo/e/
$ sudo cp /usr/local/Cellar/emacs/23.3a/share/emacs/23.3/etc/e/* /usr/share/terminfo/e/

Это не удалось так же, как и первая попытка.

Почему ни одна попытка не сработала? Как мне установить запись terminfo для eterm-color?

Я использую OS X 10.6.8 и Emacs 23.3.1.


person hekevintran    schedule 29.12.2011    source источник
comment
См. stackoverflow.com/faq#bounty вместо добавления тега.   -  person Charles    schedule 04.04.2012


Ответы (1)


Следующее работало для меня на FreeBSD.

Поместите запись termcap, вставленную ниже, в /usr/share/misc/termcap и запустите # cd /usr/share/misc/ && cap_mkdb termcap.

    # Termcap entry for eterm-color (taken from $TERMCAP set by emacs and formatted)
    eterm-color|Emacs term.el terminal emulator term-protocol-version 0.96:\
           :am:bs:mi:pt:xn:\
           :Co#8:co#166:li#48:pa#64:\
           :@7=\E[4~:AB=\E[4%dm:AF=\E[3%dm:AL=\E[%dL:DC=\E[%dP:\
           :DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:\
           :UP=\E[%dA:al=\E[L:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\
           :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:dc=\E[P:\
           :dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:im=\E[4h:kD=^[[3~:\
           :kN=\E[6~:kP=\E[5~:kb=^?:kd=\EOB:kh=\E[1~:kl=\EOD:\
           :kr=\EOC:ku=\EOA:le=^H:md=\E[1m:me=\E[m:mk=\E[8m:mr=\E[7m:\
           :nd=\E[C:op=\E[39;49m:r1=\Ec:rc=\E8:sc=\E7:se=\E[27m:sf=^J:\
           :so=\E[7m:ta=^I:ue=\E[m:\
           :up=\E[A:us=\E[4m:
person jrm    schedule 11.01.2012
comment
Также было бы неплохо добавить запись termcap уровня пользователя для emacs-color на хостах, на которых нет root-доступа. - person jrm; 11.01.2012