Je voudrais être en mesure de copier et coller du texte dans la ligne de commande dans Bash en utilisant les mêmes liaisons de clavier que Emacs utilise par défaut ( par exemple en utilisant C-space
pour set-mark
, M-w
copier du texte, C-y
, M-y
pour le coller, etc.).
La documentation de GNU Bash indique que Bash est livré avec certaines de ces liaisons de touches configurées par défaut.
Par exemple, yanking ( C-y
) fonctionne par défaut sur mon terminal. Cependant, je ne peux pas faire fonctionner les commandes set-mark
et copy
, et elles ne semblent liées à aucune clé par défaut.
Habituellement, la façon dont un utilisateur peut définir ses propres raccourcis clavier est de les ajouter .inputrc
. J'ai donc cherché et trouvé les fonctions bash suivantes dans la documentation qui, je suppose, peuvent m'aider à définir le comportement de type Emacs que je veux (c'est- set-mark
à- dire avec C-space
et copy
avec M-w
).
copy-region-as-kill ()
Copiez le texte de la région dans le tampon de mise à mort, afin qu'il puisse être retiré immédiatement. Par défaut, cette commande n'est pas liée.
et
set-mark (C-@)
Réglez la marque au point. Si un argument numérique est fourni, la marque est définie à cette position.
Si je comprends bien, ce qui précède signifie que ce copy-region-as-kill
n'est lié à aucune séquence de clavier par défaut, tandis que set-mark
est lié à C-@
par défaut.
J'ai essayé C-@
sur mon terminal, mais je ne pense pas qu'il fonctionne set-mark
car je ne vois aucun texte en surbrillance lorsque je déplace mon curseur. Dans tous les cas, j'ai essayé d'ajouter des raccourcis clavier ( M-w
et C-
) aux fonctions copy-region-as-kill
et set-mark
au - dessus de ma .inputrc
puis de les recharger C-x C-r
, mais cela n'a pas fonctionné. Je sais que mes autres entrées .inputrc
fonctionnent parce que j'ai d'autres raccourcis clavier définis par l'utilisateur.
Y a-t-il quelque chose que je fais mal? Suis-je en train de manquer quelque chose?
la source
bash
et quel programme terminal utilisez-vous?Réponses:
Cela ne met pas en évidence la sélection, mais sinon je pense que cela fonctionne bien.
Essayez de courir
pour vous assurer que cela
C-x C-r
fonctionne réellement.Cela devrait dire:
Après cela, cela devrait bien fonctionner.
Exemple:
Donne moi
Si jamais vous voulez savoir où
mark
est, faites-leC-x
C-x
.Exemple:
remettra le curseur à l'endroit où vous avez placé la marque (le début de la ligne).
De plus, je ne pense pas que vous ayez besoin d'ajouter la
set-mark
liaison. Non.(notez que la plupart des terminaux envoient
C-@
lorsque vousC-Spc
appuyez sur. Je suppose que le vôtre aussi.)Si tout cela échoue:
emacs -nw
sur le même terminal?la source
\e
ou\M-
. Voir la syntaxe du fichier init de readline .Je lie également Cw pour kill-region . Voici mon .inputrc:
la source