J'extrais fréquemment un rectangle de texte à partir d'un tampon, mais je trouve ensuite que je veux extraire le texte comme s'il ne s'agissait pas d'un rectangle. Existe-t-il un moyen d'ajouter le rectangle tué actuel à l'anneau de mise à mort?
Le manuel GNU Emacs a ceci à dire:
«Tuer» un rectangle n'est pas tuer au sens habituel; le rectangle n'est pas stocké dans le kill ring, mais dans un endroit spécial qui enregistre uniquement le rectangle le plus récent tué. Cela est dû au fait que le tirage d'un rectangle est tellement différent du texte linéaire de tirage que des commandes de tirage différentes doivent être utilisées. Yank-popping n'est pas défini pour les rectangles.
Cependant, je peux essentiellement obtenir le comportement que je veux avec
M->
aller à la fin du tamponC-x r y
rectangle secC-x C-x
point d'échange et marque (sélectionne les lignes nouvellement tirées)C-w
tuer la sélection sur le ring
Existe-t-il une meilleure façon de transformer un rectangle tué en entrée de meurtre?
Réponses:
Si j'ai bien compris votre question, vous cherchez quelque chose comme ceci:
Avec l'aimable autorisation d' ErgoEmacs
la source
Vous ne savez pas ce qui est spécial d'avoir le rectangle dans le kill-ring, mais si vous passez à Emacs-24.4, vous pouvez faire:
C-x SPC .... M-w
sélectionner un rectangle et le placer sur le kill-ring. Après celaC-y
tirera ce rectangle (dans la même chose quiC-x r y
fait, tho).la source
J'ai d'abord été ennuyé par l'absence d'une solution intégrée à ce problème, puis j'ai réalisé qu'il y avait une solution intégrée: kill-rectangle.
Dites que vous avez du texte comme
Mais voulez la partie «B» du texte ailleurs, comme entre ces lignes C et D:
Si vous copiez le rectangle B (
C-x r M-w
) puis placez le point sur le premier «D», puis tirez le rectangle vers l'arrière (C-x r y
), vous vous retrouvez avecoù tu voulais vraiment
Il peut sembler naturel de copier le rectangle de «B» et de les tirer vers le nouvel emplacement, mais une meilleure solution consiste simplement à copier les lignes «A» et «B» et à les tirer dans leur intégralité entre le «C» et le «C». D 'lignes.
Ensuite, marquez le rectangle contenant les «A» et utilisez
kill-rectangle
(C-x r k
) pour terminer avec le résultat souhaité.la source