99 votes

Comment sélectionner ou mettre en évidence un bloc dans Emacs ?

Je veux sélectionner ou mettre en évidence un bloc dans emacs sans utiliser la souris mais en le faisant à partir du clavier comme le mode visuel de vim. Quel est le moyen le plus simple de le faire à partir du clavier ?

2 votes

C-M-h mark-defun

0 votes

Vous pouvez également utiliser Spacemacs pour obtenir les raccourcis clavier de vim dans emacs.

88voto

Svante Points 24355

Si je comprends bien la question, il ne s'agit pas de régions rectangulaires à l'origine.

C-Spc place une marque à la position actuelle.

Quel que soit l'endroit où se trouve ensuite votre curseur, le texte situé entre la dernière marque et la position actuelle est "sélectionné" (vous pouvez le mettre en évidence en activant le bouton transient-mark-mode mais cela signifie également que les marques doivent être supprimées lorsque vous ne souhaitez pas les mettre en évidence).

Vous pouvez opérer sur cette région avec des commandes comme :

C-w . . Tuer la région. Cette opération supprime la région et la place dans l'anneau de destruction.
C-y . . Yank. Ceci insère le dernier extrait de l'anneau meurtrier.
M-y . . Anneau d'arrêt du cycle. Immédiatement après C-y ce qui remplace la partie arrachée par les autres extraits dans l'anneau de mort.
M-w . . Sauvez la région dans l'anneau de la mort. Comme C-w mais ne le supprime pas.

Il ne s'agit que de l'utilisation de base. Les marques ont aussi d'autres usages. Je vous recommande le tutoriel ( C-h t ).

6 votes

Il convient de noter que C-s C-r sont couramment utilisés dans ce contexte pour aller chercher la fin/le début de la région. (Particulièrement utile dans une macro).

0 votes

C'est un très bon commandement, mais... Comment sélectionner la région marquée ? Après tout, j'en ai encore besoin, c'est-à-dire d'indenter le code entre les marques.

0 votes

La région entre la dernière marque et le point actuel (c'est là où se trouve votre curseur) est la région sélectionnée. Il suffit d'exécuter M-x indent-region .

67voto

Marko Points 13736

Jetez un œil à region-rectangle dans emacs.

En bref, vous commencez la sélection comme d'habitude avec Control - Space puis tuer la région avec Control - x r k et coller (ou yank ) a tué le bloc avec Control - x r y .

12 votes

Cela ne tue pas les régions, mais les rectangles, ce qui est très différent de ce que fait le mode visuel de vim, d'après mon expérience.

16voto

edin1 Points 131

Voir l'article : "Travailler avec des sélections rectangulaires" surtout dans la section des commentaires. Voir aussi la section de Documentation sur le mode CUA intitulé "CUA rectangle support". Il y a également un belle vidéo sur vimeo .

7voto

remvee Points 698

Utilisez Control - Space pour définir une marque et déplacer votre curseur.

En transient-mark-mode mettra en évidence les sélections pour vous. M - x transient-mark-mode .

Vous pouvez configurer Emacs pour activer ce mode par défaut en utilisant une personnalisation. M - x customize-option RET transient-mark-mode .

0voto

Jezz Points 92

Pour développer la réponse d'Edin Salkovic, si vous utilisez le mode CUA, vous pouvez utiliser pour commencer une sélection de blocs visuels. Il existe de nombreux raccourcis pour contrôler la sélection des blocs, décrits dans le document suivant documentation de l'AUC .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X