J'ai été convaincu (sur Stack Overflow) d'utiliser ma bien-aimée bash en mode vi. Jusqu'à présent, je m'y suis bien habitué et j'aime ça.
Cependant, je manque vraiment une fonctionnalité: en mode emacs, vous pouvez entrer le dernier paramètre de la commande précédente en appuyant sur "ESC". (Autrement dit, appuyez sur Échap puis sur.)
Existe-t-il une liaison par défaut pour insérer le dernier paramètre en vi-mode? Je n'ai pas pu en trouver et je manque vraiment cette commande ...
bindkey "\e." insert-last-word
history-search-backwards
est inestimable pour les utilisateurs sérieux de la ligne de commande.Il y a (vi-yank-arg), par défaut mappé sur "_". Cela devrait faire ce que vous voulez (en mode commande).
la source
Pas exactement la même chose, mais dans les deux modes, vous pouvez taper
!$
, et il sera remplacé par le dernier mot de la commande précédente. Trouvez plus de ces choses dans le manuel .la source
Le fichier ~ / .inputrc peut configurer le key-map (vous pouvez le générer manuellement s'il est introuvable). Ajoutez la commande suivante dans le ~ / .inputrc :
Mon ~ / .inputrc est:
Vous pouvez trouver les détails sur readline et
bind -p
ici: http://linux.about.com/library/cmd/blcmdl3_readline.htmEt quelques informations sur les keyblindings Vi dans bash et Readline VI Editing Mode Cheat Sheet
la source
Dans votre .bashrc, ajoutez-les:
Ceux-ci restaureront le comportement par défaut non seulement de ESC-dot - mais également de Ctrl-A, Ctrl-E, Ctrl-W et Ctrl-L. Vous pouvez donc profiter du mode vi bash normal et toujours utiliser les raccourcis que vous connaissez et aimez. Si vous avez besoin de plus d'actions, cochez simplement "man bash" pour trouver le nom de l'action readline dont vous avez besoin (comme "clear-screen", "end-of-line", etc.).
la source
Vous pouvez utiliser
$_
pour faire référence au dernier argument de la commande précédente.Les inconvénients sont:
Vous ne pouvez pas vérifier avant d'appuyer sur Entrée que la chose insérée est celle que vous vouliez insérer.
Si vous utilisez PROMPT_COMMAND ou un piège DEBUG (je ne sais pas exactement ce qui cause le problème; j'ai les deux dans mon .bashrc) pour faire des trucs fantaisistes comme mettre la commande en cours d'exécution dans le titre xterm, cela clobbera
$_
.la source