Alternar VI para usar a tecla de retrocesso em vez de Control + H para backspace?

7

Estou no Solaris 10 e, por padrão, vi versão SVR4.0, o Solaris 2.5.0 está instalado.

O sistema foi configurado para que, quando eu ssh for, Control+H faça backspace e backspace retorne ^?

Eu adicionei stty erase '^?' em .profile para que no terminal a tecla de retrocesso funcione corretamente agora. No entanto, quando uso o vi, ele ainda está emitindo o caractere ^? .

Normalmente, eu digitaria :set nocompatible para corrigir isso, mas isso me dá

compatible: No such option - 'set all' gives all option values

set all me dá

noautoindent            nomodelines                     noshowmode
autoprint               nonumber                        noslowopen
noautowrite             nonovice                        tabstop=8
nobeautify              nooptimize                      taglength=0
directory=/var/tmp      paragraphs=IPLPPPQPP LIpplpipnpptags=tags /usr/lib/tags
noedcompatible          prompt                          tagstack
noerrorbells            noreadonly                      term=xterm
noexrc                  redraw                          noterse
flash                   remap                           timeout
hardtabs=8              report=5                        ttytype=xterm
noignorecase            scroll=33                       warn
nolisp                  sections=NHSHH HUuhsh+c         window=66
nolist                  shell=/bin/ksh                  wrapscan
magic                   shiftwidth=8                    wrapmargin=0
mesg                    noshowmatch                     nowriteany

Eu estou supondo que esta versão do vi é muito antiga e que eu preciso de uma versão mais nova ou vim se eu quiser usar set nocompatible , mas eu estou querendo saber existe outra maneira obter vi para usar backspace para backspacing sem ter que carregar o vim?

    
por cwd 24.10.2011 / 19:28

1 resposta

6

ok. então resolvemos que a tecla backspace não funcionava.

adicionando

:map! ^? ^H

para o seu arquivo .exrc. Para mapear as teclas de seta de maneira semelhante, você pode adicionar o seguinte ao mesmo arquivo .exrc.

:map! ^[OA ^[ka
:map! ^[OB ^[ja
:map! ^[OC ^[la
:map! ^[OD ^[ha

Tenha em mente que todos esses 'códigos de escape' são criados não simplesmente digitando shift + 6 para o caractere '^', mas pressionando as seguintes teclas :

backspace & excluir:

  • ^ = control + v + delete
  • ^ H = controle + v + controle + h

seta para cima:

  • ^ [OA = controle + v + seta para cima
  • ^ [ka = controle + v + esc + k + a

seta para baixo:

  • ^ [OB = controle + v + seta para baixo
  • ^ [ja = control + v + esc + j + a

seta para a direita:

  • ^ [OC = controle + v + seta para a direita
  • ^ [la = controle + v + esc + l + a

seta para a esquerda:

  • ^ [OD = controle + v + seta para esquerda
  • ^ [ha = controle + v + esc + h + a

Todas as linhas de comentário no seu arquivo .exrc devem ser marcadas por " , em vez de # . E você não pode deixar linhas em branco no seu arquivo .exrc, caso contrário, a primeira linha em branco é onde o seu .exrc deixará de ser processado.

Uma vez que estes estão no lugar, o vi começará a parecer um pouco mais como foi projetado para uso humano. :)

para um exemplo de quão poderoso é o arquivo .exrc, confira este exemplo .exrc de Dave Capella .

    
por 25.10.2011 / 14:51