Como pulo para a próxima palavra ou para a anterior com as teclas de seta CTRL + em um console?

10

Em aplicações de emulação de terminal, pressionar as setas CTRL + Esquerda / Direita salta de uma palavra para a anterior ou para a próxima. É possível ter a mesma funcionalidade em um console Linux, seja nos modos texto ou framebuffer?

Na minha configuração, as teclas de seta CTRL + são transformadas em seqüências de caracteres de escape e não são interpretadas.

    
por Pedro Palhoto 01.01.2011 / 14:45

4 respostas

7

Isto é possível se e somente se o terminal enviar diferentes seqüências de escape para Ctrl + Esquerda vs Esquerda . Este não é o caso por padrão no console do Linux (pelo menos na minha máquina). Você pode fazer isso modificando o mapa de teclas. O arquivo exato a ser modificado pode depender da sua distribuição; no Debian lenny, o arquivo a ser modificado é /etc/console/boottime.kmap.gz . Você precisa de linhas como

control keycode 105 = F100
string F100 = "3O5D"
control keycode 106 = F101
string F101 = "3O5C"

Você também pode escolher as mesmas seqüências de escape que o seu emulador de terminal X. Para descobrir qual é a sequência de controle, digite Ctrl + V Ctrl + Esquerda em um shell; isso insere (na minha máquina) ^[O5D onde ^[ é um caractere de escape. No arquivo de mapa de chaves, 3 representa um caractere de escape.

Configurar o aplicativo no terminal para decodificar a seqüência de escape é um problema separado,.

    
por 01.01.2011 / 17:41
21

Atalhos no estilo do Emacs Alt+F , Alt+B funcionam por padrão com todos os readline - programas de linha de comando alimentados como conchas.

    
por 01.01.2011 / 17:23
1

Você pode definir o vim como seu editor de linha de comando e, em seguida, pressionar ESC e saltar ao redor do estilo vim (avançar, retroceder, finalizar, $, 0, etc)

    
por 01.01.2011 / 15:27
-1

Eu tive este problema no Debian com um arquivo ~/.inputrc vazio. Corrigido o problema removendo este arquivo.

    
por 01.03.2016 / 11:54