end 대신 Solaris 11 및 vim F

end 대신 Solaris 11 및 vim F

솔라리스 11을 사용하고 있습니다

이것은 내 .vimrc입니다.

set nohlsearch
set mouse=""
set paste
set showmode
set ruler
set clipboard=unnamedplus
setlocal cm=blowfish2
set nocompatible
set backspace=indent,eol,start
set term=dtterm
syntax on
imap <esc>OH <esc>0i
cmap <esc>OH <home>
nmap <esc>OH 0
nmap <esc>OF $
imap <esc>OF <esc>$a
cmap <esc>OF <end>

키보드 END 키가 잘 작동합니다

명령 모드에서 I, A 또는 a를 입력하면 편집할 수 있습니다. END를 입력하고... F를 입력하세요! 왜?

답변1

(에 대한) 터미널 설명에는 dttermvim이 인식할 특수 키가 포함되어 있지 않습니다. 터미널 설명에 없기 때문에 vim은 이러한 문자를 명령으로 처리하는 것 외에는 이러한 문자를 어떻게 처리해야 할지 모릅니다.탈출하다삽입 모드에서열려 있는삽입하고에프).

솔라리스의 말은 다음과 같습니다 dtterm.

#     Reconstructed via infocmp from file: /usr/share/lib/terminfo/d/dtterm
dtterm|CDE terminal emulator,
        am, mir, msgr, xenl, xon,
        colors#8, cols#80, it#8, lines#24, lm#0, pairs#8,
        acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
        bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
        clear=\E[H\E[J, cnorm=\E[?25h, cr=\r,
        csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\b,
        cud=\E[%p1%dB, cud1=\n, 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, dim=\E[2m, dl=\E[%p1%dM,
        dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
        flash=\E[?5h$<200>\E[?5l, home=\E[H, ht=\t, hts=\EH,
        ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
        invis=\E[8m, is2=\E\sF\E>\E[?1l\E[?7h\E[?45l, kbs=\b,
        kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
        kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
        kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
        kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
        kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
        kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
        kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~,
        knp=\E[6~, kpp=\E[5~, kslt=\E[4~, nel=\EE,
        op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
        rmam=\E[?7l, rmir=\E[4l, rmso=\E[22;27m, rmul=\E[24m,
        sc=\E7, setab=\E[%p1%{40}%+%dm,
        setaf=\E[%p1%{30}%+%dm,
        sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t^N%e^O%;,
        sgr0=\E[0m, smacs=^N, smam=\E[?7h, smir=\E[4h,
        smso=\E[2;7m, smul=\E[4m, tbc=\E[3g,

아니요kend정의되었으며 키보드 모드로/에서 전환하는 기능은 smkx정의 되지 않았습니다. rmkx표시되는 매핑은 다음과 같습니다.신청방법(평소처럼 - 상황에 따라 다름)단말기smkx/rmkx를 사용하여 수행됩니다). 응용 프로그램 모드 특수 키는 로 시작합니다 escapeO. 보시다시피 터미널 설명에는 없습니다.저것. 이 모든 것을 염두에 두고 애플리케이션 모드에 따라 바인딩이 어떻게 실행되는지 보는 것은 흥미로울 것입니다.

이제... 당신은 사용하지 않을 것 같습니다용어솔라리스 11에서. 그것은 더 이상 일반적으로 사용되지 않는 CDE에서 제공하는 터미널 에뮬레이터였습니다. xterm이나 일부 모방품을 사용하고 있을 가능성이 높습니다. 이 경우 가장 좋은 해결책은 ncurses의 터미널 데이터베이스를 설치하여 사용하는 것입니다.

Solaris 11을 빠르게 확인하면서 나는 그들이변형~의xterm-256color, 그러나 수정되었으므로 사용성이 떨어집니다. 값이 kend올바르지 않습니다. 자세히 살펴보면 Solaris 개발자는 xterm-256color에서 상속받은 xtermm(또는 동등하게 에서 온 xtermc) 것으로 보입니다. 후자는 xterm FAQ에 나와 있습니다.어떤 $TERM을 사용해야 하나요?:

어떤 사람들은 사용을 제안합니다.xtermc. 이는 Solaris에 설치됩니다. 그러나 현재 사용 중인 xterm과 일치하지 않습니다. (분명히 이것은 Unixware의 오래된 버전을 위해 작성되었습니다).실제로 색상은 작동하지만 마우스가 작동하지 않고 기능 키도 작동하지 않습니다..

관련 정보