O que é a sequência de escape ANSI do terminal gnome para “CTRL + arrow / s”?

8

Estou tentando configurar o meu bash ~/.inputrc para essas configurações
(Nota: , significa as teclas de seta esquerda e direita)

  • Ctrl + - deve retornar uma palavra
  • Ctrl + - deve avançar uma palavra

Atualmente, tenho isso no meu ~/.inputrc e não funciona. Ctrl + seta não produz nada.

"\eC-5C":forward-word
"\eC-5D":backward-word

Tenho certeza de que minha sequência de escape está errada.
Quais são as seqüências de escape corretas para as combinações Ctrl + seta ?

  • terminal: tmux dentro do gnome-terminal
por the_velour_fog 14.02.2016 / 01:47

2 respostas

12

O terminal Gnome (mais propriamente VTE ) imita alguma versão das sequências de escape do xterm. Quanto isso acontece, depende da versão do VTE.

A documentação relevante do xterm está nas Teclas de função do estilo do PC seção de Sequências de Controle do XTerm .

O que você está procurando é uma string como \e[1;5D (para controlar a seta para a esquerda), onde o 5 denota o modificador control .

Em ncurses, você pode ver essas strings usando infocmp -x , como os valores de kUP5 , kDN5 , kLFT5 e kRIT5 . Por exemplo:

    kDN5=\E[1;5B,
    kLFT5=\E[1;5D,
    kRIT5=\E[1;5C,        
    kUP5=\E[1;5A,
    
por 14.02.2016 / 01:54
14

A maneira mais simples de descobrir quais são os códigos de uma sequência de teclas é usar ctrl - v .

Então, você digita ctrl V e ctrl para obter:

^[[1;5C

Qual é uma maneira de escrever ESC[1;5C ou \e[1;5C .

    
por 14.02.2016 / 02:30