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은 문자를 명령으로 처리하는 것 외에는 문자로 무엇을 해야할지 모릅니다.탈출하다삽입 모드에서열려 있는삽입하고에프).

Solaris가 말하는 내용은 다음과 같습니다 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, 보시다시피 터미널 설명 중 어느 것도 로 시작하지 않습니다.저것. 이 모든 것을 고려하면 애플리케이션 모드에 의존하는 바인딩을 어떻게 실행하고 있는지 보는 것은 흥미로울 것입니다.

이제... 당신이 사용하고 있을 가능성은 거의 없습니다.dttermSolaris 11에서는 CDE와 함께 제공되는 터미널 에뮬레이터로 더 이상 사용되지 않습니다. xterm이나 일부 모방품을 사용하고 있을 가능성이 더 높습니다. 이 경우 가장 좋은 해결책은 ncurses에서 터미널 데이터베이스를 설치하고 사용하는 것입니다.

Solaris 11을 잠깐 살펴보면,변종~의xterm-256color, 그러나 수정되어 사용할 수 없게 되었습니다. 값이 kend올바르지 않습니다. 자세히 살펴보면 Solaris 개발자가 xterm-256colorfrom xtermm(또는 동등하게 from )을 상속 한 것으로 보입니다 xtermc. 후자는 xterm FAQ에서 지적됩니다.어떤 $TERM을 사용해야 하나요?:

어떤 사람들은 사용을 권장합니다.xtermc. 이는 Solaris에 설치됩니다. 그러나 현재 사용 중인 xterm과 일치하지 않습니다. (분명히 이것은 Unixware에서 더 이상 사용되지 않는 버전을 위해 작성되었습니다).색상은 작동하지만 마우스나 기능 키는 작동하지 않습니다..

관련 정보