
Estoy en Solaris 11
Este es mi .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>
La tecla FINAL del teclado funciona bien
en modo comando, pero cuando escribo I o A o a, para editar... escriba END y... ¡escriba F! ¿Por qué?
Respuesta1
La descripción del terminal (para dtterm
) no incluye la clave especial que desea que vim reconozca. Como no está en la descripción del terminal, vim no sabe qué hacer con los caracteres además de manejarlos como un comando:escapardesde el modo de inserción, entoncesabiertoe insertarF).
Esto es lo que dice 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,
No haykend
definido, y no smkx
y rmkx
capacidades definidas para cambiar a/desde el modo de teclado. El mapeo que estás mostrando es paramodo de aplicación(que convencionalmente - dependiendo de laTerminalse haría usando smkx/rmkx). Una clave especial del modo de aplicación comenzaría con escapeOy, como puede ver, ninguna descripción del terminal lo hace.eso. Teniendo en cuenta todo eso, sería interesante ver cómo se ejercen los enlaces que dependen del modo de aplicación.
Ahora... es bastante improbable que estés usandotérminoen Solaris 11. Ese era el emulador de terminal provisto con CDE, que ya no se usa mucho. Es más probable que estés usando xterm o alguna imitación. En ese caso, su mejor solución sería instalar y utilizar la base de datos del terminal de ncurses.
En una revisión rápida de Solaris 11, veo que tienen unavariantedexterm-256color
, pero se ha modificado (y por lo tanto se ha hecho menos utilizable): el valor de kend
es incorrecto. Mirando de cerca, parece que el desarrollador de Solaris heredó xterm-256color
de xtermm
(o equivalentemente, de xtermc
). Esto último se señala en las preguntas frecuentes de xterm.¿Qué $TERM debo usar?:
Algunas personas recomiendan usarxtermc. Eso está instalado en Solaris. Sin embargo, no coincide con ningún xterm en uso actual. (Aparentemente fue escrito para una versión obsoleta en Unixware).Los colores funcionan, cierto, pero el ratón no, ni las teclas de función..