web-dev-qa-db-fra.com

Les touches fléchées dans le raccourci Terminal ne fonctionnent pas

Je suis nouveau sur Linux et j'utilise Ubuntu 13.04. J'ai un programme C++ nommé "dictionnaire" (chemin complet: /home/anmol/Desktop/c++/dictionary), que j'ai compilé avec Code :: Blocks IDE (et la version 4.7.3 de GCC).

J'ai configuré un raccourci clavier personnalisé en allant dans Paramètres système -> Clavier -> Raccourcis et en mettant la commande: gnome-terminal --disable-factory -x /home/anmol/Desktop/c++/dictionary.

Maintenant, le problème que je rencontre est que les touches fléchées à l'intérieur du terminal ne fonctionnent pas ... Par exemple, chaque fois que j'appuie sur la flèche gauche, j'obtiens "^ [[D" ...] mais quand je gère un terminal normalement ( en appuyant Ctrl+Alt+T), les touches fléchées fonctionnent bien.

Maintenant, quand j'ai cherché le problème sur Google, j'ai découvert que cela pouvait arriver si le shell par défaut avait été changé de bash à sh.

Donc, dans mon programme c ++, pour voir quel shell était utilisé par défaut, j'ai ajouté la ligne system("chsh"); juste après la fonction main() et constaté que le shell par défaut était uniquement bash! J'ai quand même essayé en ajoutant la ligne system("chsh -s /bin/bash") mais le problème persiste ... (quand j'ai préfixé Sudo à la commande, il a renvoyé une erreur chsh: PAM:Authentication Failure)!

De plus, dans la page Paramètres de l'environnement Code :: Blocks, j'ai trouvé ces 2 paramètres:

  • Shell pour exécuter des commandes dans: /bin/sh -c
  • Terminal pour lancer les programmes de la console: gnome-terminal --disable-factory -t $TITLE -x

J'ai changé le "Shell pour exécuter des commandes dans": /bin/bash -c. Mais le problème persiste encore.

4
Anmol Singh Jaggi

Installez d'abord l'outil rlwrap (dans Ubuntu n'est pas installé par défaut) en exécutant la commande suivante dans terminal :

Sudo apt-get install rlwrap

Maintenant, configurez votre raccourci clavier personnalisé en utilisant la commande suivante:

gnome-terminal --disable-factory -x bash -c 'rlwrap -a /home/anmol/Desktop/c++/dictionary'
2
Radu Rădeanu