Ao definir:
export TERM=xterm-256color
você está dizendo a htop (e todos os outros aplicativos de terminal visual que usam o termcap ou o banco de dados terminfo) que seu terminal é um xterm de 256 cores e não um console virtual Linux.
htop consultará o banco de dados terminfo para saber qual sequência de caracteres é enviada quando F1 , F2 ... mas irá receber aqueles para xterm . / p>
xterm envia sequências diferentes do console virtual do Linux para essas chaves, que você pode verificar consultando o banco de dados terminfo manualmente com infocmp , por exemplo:
$ infocmp -L1 xterm-256color | grep 'key_f[1-5]='
key_f1=\EOP,
key_f2=\EOQ,
key_f3=\EOR,
key_f4=\EOS,
key_f5=\E[15~,
$ infocmp -L1 linux | grep 'key_f[1-5]='
key_f1=\E[[A,
key_f2=\E[[B,
key_f3=\E[[C,
key_f4=\E[[D,
key_f5=\E[[E,
Portanto, htop não reconhecerá \E[[A como F1 , esperará \EOP por isso.
Aqui, você não deseja atribuir valores a $TERM in ~/.bashrc . $TERM deve ser definido pelos emuladores de terminal ( xterm , terminator ), e por getty para os consoles virtuais Linux (deve ser linux ).
Se você não estiver satisfeito com o valor que um emulador de terminal específico escolhe para $TERM , essa é a configuração dos emuladores de terminal que você deve atualizar.