Se suas teclas de seta imprimirem uma sequência de escape no IRB, pode ser devido ao módulo Ruby Readline quando usado com Readline.vi-editing-mode
e Readline 6.2.
Conseqüentemente, embora eu prefira o modo vi, desativei-o por enquanto para contornar o inconveniente do IRB.
Estou usando Ruby 1.9.3p392
. No Ruby 2.0.0p0
IRB, as teclas de seta se comportam de maneira um pouco diferente.
1.9.3p392 :001 > a = 1
=> 1
1.9.3p392 :003 > [A # Up arrow pressed here,
# line should be "a = 1".
Verifique se o modo de edição vi está ativado:
1.9.3p392 :003 > Readline.vi_editing_mode?
=> true
No meu caso, foi definido devido ao meu $HOME/.inputrc
arquivo.
set editing-mode vi
Verifique se o readline.bundle do Ruby foi compilado com o Readline 6.2:
ldd readline.so # Linux
otool -L readline.bundle # MacOS
Nota no MacOS, o módulo Readline pode ser compilado em libedit, que é um substituto para libreadline. No entanto, AFAIK, ele não implementa o modo de edição do vi. Nesse caso, você pode precisar mudar $HOME/.editrc
. Google e StackOverflow irão ajudá-lo aqui.