Obtendo; 5D ao apertar tecla ctrl + seta em um Terminal no FreeBSD

14

No centos eu posso pular uma palavra pressionando ctrl + seta (esquerda ou direita) em um terminal. Quando eu ssh em uma caixa FreeBSD e eu tento o mesmo padrão que eu recebo:

$ tail -f 20120412.log;5D;5D;5D

(cada tentativa = ; 5D )

Existe uma maneira de corrigir isso? Estou usando o Ubuntu 12.04 + Terminator.

Obrigado antecipadamente.

    
por jdorfman 08.05.2012 / 00:38

5 respostas

19

Um .inputrc em seu diretório home fará com que ctrl + restante pare de funcionar no Ubuntu (por exemplo).

Para que tudo funcione, adicione o seguinte a ~/.inputrc :

# Include system-wide inputrc, which is ignored by default when
# a user has their own .inputrc file.
$include /etc/inputrc
    
por 04.01.2013 / 08:56
2

A menos que você tenha alterado estes padrões, o shell que você está usando no Ubuntu é bash. No FreeBSD, o shell padrão é o csh. Você pode alterar seu shell com o seguinte comando em ambos os sistemas operacionais:

chsh

Defina seu shell no FreeBSD para / usr / local / bin / bash. O Bash não faz parte do FreeBSD, então se você ainda não o fez, instale-o das portas:

cd /usr/ports/shells/bash
make install
make clean

Uma última coisa: não mude o shell para o root. É para isso que serve a conta "toor": todos os privilégios do root, mas você pode definir o shell como quiser. A razão é que não há nenhuma atividade do sistema que seja executada sob to ou, então você não vai quebrar nada ou confundir ninguém alterando o shell dessa conta para algo que você está acostumado (ou pode ser mais funcional como um shell de login). / p>     

por 10.05.2012 / 02:29
1

O shell que você está rodando na máquina FreeBSD provavelmente não suporta essa seqüência de controle. Sem saber qual shell você está usando, é difícil dizer com certeza.

    
por 08.05.2012 / 02:29
1

Se você usar o ZSH, use-o no arquivo / etc / zshrc .

case "${TERM}" in
  cons25*|linux) # plain BSD/Linux console
    bindkey '\e[H'    beginning-of-line   # home 
    bindkey '\e[F'    end-of-line         # end  
    bindkey '\e[5~'   delete-char         # delete
    bindkey '[D'      emacs-backward-word # esc left
    bindkey '[C'      emacs-forward-word  # esc right
    ;;
  *rxvt*) # rxvt derivatives
    bindkey '\e[3~'   delete-char         # delete
    bindkey '\eOc'    forward-word        # ctrl right
    bindkey '\eOd'    backward-word       # ctrl left
    # workaround for screen + urxvt
    bindkey '\e[7~'   beginning-of-line   # home
    bindkey '\e[8~'   end-of-line         # end
    bindkey '^[[1~'   beginning-of-line   # home
    bindkey '^[[4~'   end-of-line         # end
    ;;
  *xterm*) # xterm derivatives
    bindkey '\e[H'    beginning-of-line   # home
    bindkey '\e[F'    end-of-line         # end
    bindkey '\e[3~'   delete-char         # delete
    bindkey '\e[1;5C' forward-word        # ctrl right
    bindkey '\e[1;5D' backward-word       # ctrl left
    # workaround for screen + xterm
    bindkey '\e[1~'   beginning-of-line   # home
    bindkey '\e[4~'   end-of-line         # end
    ;;
  screen)
    bindkey '^[[1~'   beginning-of-line   # home
    bindkey '^[[4~'   end-of-line         # end
    bindkey '\e[3~'   delete-char         # delete
    bindkey '\eOc'    forward-word        # ctrl right
    bindkey '\eOd'    backward-word       # ctrl left
    bindkey '^[[1;5C' forward-word        # ctrl right
    bindkey '^[[1;5D' backward-word       # ctrl left
    ;;
esac
    
por 08.05.2012 / 07:22
0

Parece que você pode ter a configuração incorreta do $ TERM. echo $TERM para descobrir qual é a sua configuração atual. Pode querer usar o xterm export TERM=xterm-256color .

    
por 08.05.2012 / 00:43