web-dev-qa-db-fra.com

Suppression d'une entrée dans la dernière barre oblique

Je vais très souvent passer de plusieurs fichiers sur un serveur. Je vais exécuter les exemples de commandes suivants en séquence:

nano /web/site/path/to/file
/web/site/script.py
nano /web/site/path/to/anotherFile
nano /web/site/path/to/yetAnotherFile
/web/site/script.py
nano /web/site/path/to/etc

Pour passer d'une commande nano à la suivante, j'appuie sur Up et Backspace pour remplacer le dernier segment du chemin. Le problème avec ceci est que je suis vraiment vraiment paresseux.

Existe-t-il un raccourci clavier (ou bashisme) pouvant:

  • Faites-vous remplacer par le dernier chemin utilisé (avec un bit supplémentaire à la fin)
  • Supprimer dans la ligne en cours (par exemple après avoir appuyé sur Up) retour à la dernière /
15
Oli

Je pense que tu cherches le Alt+Backspace raccourci.

Après avoir appuyé sur Up cela devrait effacer le caractère / ou space précédent.

20
Sylvain Pineau

Pour détecter la liaison readline qui tue un mot en arrière à votre guise, vous pouvez utiliser la commande suivante dans votre terminal:

_bind -p | awk '/kill/ && /Word/ && /backward/'
_

Dans une installation Ubuntu par défaut, le résultat pourrait être:

_"\e\C-h": backward-kill-Word
# Shell-backward-kill-Word (not bound)
_

La deuxième ligne semble sans importance à ce stade, alors essayons de voir ce que signifie première ligne. D'après ce que j'ai compris, la fonction backward-kill-Word readline, qui supprime en fait tous les caractères jusqu'au caractère spécial précédent (_/_, _;_, _,_ etc .) est lié à la séquence de touches _\e\C-h_. Maintenant, dans cette séquence _\e_ représente le Esc touche, _\C_ - le Ctrl key, et _\C-h_ signifie Ctrl+h qui est équivalent dans ce cas avec Backspace clé.

Donc, vous recherchez Esc+Ctrl+h raccourci clavier équivalent à Esc+Backspace et que, à cause du comportement de xterm qui fait Alt clé pour agir comme méta-caractère et les méta-caractères sont convertis en une séquence de deux caractères, le caractère lui-même étant précédé de Esc (voir _man xterm_) , est équivalent à Alt+Backspace.

Maintenant, si vous ne l'aimez pas et que vous continuez de l'oublier, vous pouvez utiliser la commande suivante pour créer un nouveau raccourci, disons Esc+w, pour votre but:

_bind '"\ew": backward-kill-Word'
_

Pour rendre ce nouveau raccourci persistant tout le temps pour toutes les commandes qui utilisent readline, ajoutez la ligne suivante à votre fichier _~/.inputrc_:

_"\ew": backward-kill-Word
_

Voir _help -m bind | sensible-pager_ pour plus d'informations.

9
Radu Rădeanu

Une autre combinaison de touches est:

Alt+B ensuite Ctrl+K

Alt + B     Move cursor backward one Word on the current line    
Ctrl + K    Clear the line after the cursor

Alt+B ensuite Alt+D

Cela supprime le dernier mot sans supprimer le caractère spécial entre les mots.

0
αғsнιη