Pourquoi ctrl + flèche gauche ne saute-t-il pas les mots?

20

Je suis sur mon Ubuntu 12.04. Chaque fois que j'édite du texte, j'utilise ctrl+ left/ rightpour déplacer / sauter entre les mots. Récemment, j'ai installé xscreensaver et changé les raccourcis clavier pour activer mon économiseur d'écran. Mais alors, Ctrl+ a leftcessé de répondre normalement (passer au mot suivant à gauche). Ctrl+ rightsaute toujours au mot suivant à droite. Le problème se produit si j'utilise le terminal, Gedit ou même en tapant du texte dans des pages Web.

Je suis revenu à gnome-screensaver, j'ai supprimé xscreensaver (j'ai également corrigé mes raccourcis clavier). Mais le problème demeure.

J'ai essayé de copier le contenu de /etc/inputrcvers ~/.inputrc(par défaut, je n'ai pas ~ / .inputrc). J'ai quelques informations ici: des caractères étranges apparaissent lorsque j'utilise les touches Ctrl et Flèche pour naviguer

Veuillez aider.

EDIT: Voici mon ~/.inputrc:

# /etc/inputrc - global inputrc for libreadline
# See readline(3readline) and `info rluserman' for more information.
# Be 8 bit clean.
set input-meta on
set output-meta on
# To allow the use of 8bit-characters like the german umlauts, uncomment
# the line below. However this makes the meta key not work as a meta key,
# which is annoying to those which don't need to type in 8-bit characters.

# set convert-meta off

# try to enable the application keypad when it is called.  Some systems
# need this to enable the arrow keys.
# set enable-keypad on

# see /usr/share/doc/bash/inputrc.arrows for other codes of arrow keys

# do not bell on tab-completion
# set bell-style none
# set bell-style visible

# some defaults / modifications for the emacs mode
$if mode=emacs

# allow the use of the Home/End keys
"\e[1~": beginning-of-line
"\e[4~": end-of-line

# allow the use of the Delete/Insert keys
"\e[3~": delete-char
"\e[2~": quoted-insert

# mappings for "page up" and "page down" to step to the beginning/end
# of the history
# "\e[5~": beginning-of-history
# "\e[6~": end-of-history

# alternate mappings for "page up" and "page down" to search the history
# "\e[5~": history-search-backward
# "\e[6~": history-search-forward

# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word

$if term=rxvt
"\e[8~": end-of-line
"\eOc": forward-word
"\eOd": backward-word
$endif

# for non RH/Debian xterm, can't hurt for RH/Debian xterm
# "\eOH": beginning-of-line
# "\eOF": end-of-line

# for freebsd console
# "\e[H": beginning-of-line
# "\e[F": end-of-line

$endif

si je supprime / etc / inputrc, voici ce que j'obtiens si je maintiens CTRL puis appuyez cinq fois sur la flèche droite: en appuyant sur ctrl + flèche droite

Contrairement à la première image ci-dessus, maintenir CTRL et appuyer plusieurs fois sur la flèche gauche ne s'imprimera pas à ;5Dnouveau ... c'est comme s'il acceptait la commande une fois et ne le faisait plus. Voir l'image ci-dessous: en appuyant sur ctrl + flèche gauche

itagomo
la source
Quel shell utilisez-vous?
Sergiy Kolodyazhnyy

Réponses:

25

1 - Dans ~/.zshrc

bindkey '^[[1;5D' backward-word
bindkey '^[[1;5C' forward-word

2 - Ou dans ~/.bashrc

bind '"\e[1;5D" backward-word' 
bind '"\e[1;5C" forward-word'

... Et maintenant ctrl+ left/ rightsauter des mots dans byobu / tmux.

3 - Ne plaisante pas inputrc.

yPhil
la source
il y a trop longtemps ... déjà réinstallé ubuntu
itagomo
3
De même, si vous avez un shell Bash, dans votre fichier ~ / .bashrc, ajoutez bind '"\ e [1; 5D" backward-word' bind '"\ e [1; 5C" forward-word'
ishmael
3

J'ai eu le même problème. Je l'ai corrigé en copiant ces lignes dans mon ~/.inputrcfichier:

"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word
Hemanthkumar
la source
seules les 2 premières lignes sont requises
davidchoo12
1

Créez un fichier inputrc à l'aide de touch ~/.inputrc.
Copiez le contenu de la réponse acceptée dans le lien auquel vous avez fait référence, c'est-à-dire des caractères étranges apparaissant lorsque j'utilise les touches Ctrl et Flèche pour naviguer , dans ce fichier en ouvrant le fichier ~ / .inputrc à l'aide d'un éditeur de texte. Sauvegarde le.
Lisez le fichier à l'aide de la bind ~/.inputrccommande ou redémarrez un nouveau terminal. Les choses devraient fonctionner ..

drake01
la source
j'ai déjà fait mon ~ / .inputrc. même contenu que mon / etc / inputrc. le problème ici est que la commande "CTRL + flèche gauche" ne passe pas au mot suivant à gauche. mais à part cela, toutes les fonctions fonctionnent. toute autre solution?
itagomo
Il semble que la liaison pour ctrl + flèche gauche soit en quelque sorte remplacée. Pourriez-vous inclure le contenu exact du fichier inputrc? La deuxième possibilité peut être que la ligne peut être mal formée. Soit dit en passant, la liaison pour la combinaison ctrl + gauche est-elle la dernière ligne du ~/.inputrcfichier?
drake01
message édité .. voir ci-dessus .. informations supplémentaires, sauter les mots vers la droite fonctionne en maintenant (ne doit pas relâcher) la touche CTRL puis en appuyant sur la touche droite une fois à chaque fois que je veux parcourir les mots .. mais en allant vers la gauche, j'ai besoin libérer la touche CTRL chaque fois que je saute des mots ..
itagomo
quelqu'un qui peut aider?
itagomo
1

J'ai compris que sauter des mots vers la gauche en déclenchant Ctrl + Gauche ne fonctionnait pas (même pas quand j'ai ajouté du code dans ~ / .inputrc ou ~ / .zshrc) parce que par défaut ce raccourci est déjà utilisé dans Ubuntu (il redimensionne la fenêtre courante horizontalement). Vous pouvez modifier le raccourci par défaut dans le menu Système -> Préférences -> Raccourci clavier. Je viens de remplacer Ctrl + Gauche par Ctrl + Bas pour le libérer. Après ce remplacement, sauter des mots vers la gauche en utilisant Ctrl + Gauche fonctionne très bien! Même sans ~ / .inputrc ou ~ / .zshc.

Banjo
la source
cherche des solutions depuis très longtemps. C'était très simple et efficace! Merci.
rizwanhudda