web-dev-qa-db-fra.com

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

Je veux sélectionner ou mettre en surbrillance un bloc dans emacs sans souris mais à partir du clavier. Comme le mode visuel de vim. Quel est le moyen le plus simple de procéder depuis un clavier?

69
systemsfault

Jetez un coup d'œil à rectangle-région dans emacs.

En bref, vous commencez la sélection comme d'habitude avec Control-Spacepuis tuez une région avec Control-xrk et coller (ou yank) bloc tué avec Control-xry.

58
Marko

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

C-Spcmet une marque à la position actuelle.

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

Vous pouvez utiliser cette région avec des commandes telles que:

C-w. . Tuer la région. Ceci supprime et place la région dans le presse-papiers.
C-y. . Coup sec. Cela insère le dernier extrait du presse-papiers.
M-y. . Cycle kill ring. Immédiatement après C-y, ceci remplace la partie arrachée par les autres extraits dans le presse-papiers.
M-w. . Enregistrer la région dans l'anneau de mise à mort. Comme C-w, mais ne supprime pas.

Ceci est juste l'utilisation de base. Les marques ont également d'autres utilisations. Je recommande le tutoriel (C-h t).

63
Svante

Emacs 24.4 a maintenant le mode rectangle-mark-mode. C-x espace pour l'invoquer.

20

Voir l'article: "Utilisation de sélections rectangulaires" , en particulier la section commentaires. Voir aussi la section Documentation en mode CUA intitulée "Support rectangle CUA". Il y a aussi un Belle vidéo sur vimeo .

16
edin1

Utilisation Control-Space pour marquer et déplacer votre curseur.

Le 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.

6
remvee

Bien que C-SPC soit un moyen courant de commencer à marquer quelque chose de Quel que soit votre argument, il existe souvent des moyens plus rapides/plus simples qui ne impliquent pas

Raccourcis de sélection intégrés

  • M-h - un moyen important de marquer un paragraphe. Un "paragraphe" Signifie souvent un bloc de code.

  • C-M-h et C-M-@ - pour marquant sexps et defuns, respectivement. Cela fonctionne pour plusieurs langues, pas seulement lisps.

  • maintenez la touche shift - une autre manière astucieuse de surligner pendant le mouvement Par exemple, M-S-f sélectionne le transfert d'un mot entier. C'est shift-select-mode, Et il est activé par défaut dans Emacs 24+. Sur certains claviers Non chiclettes, vous devriez pouvoir maintenir C-S- avec un seul Pinky.

Vous pouvez appuyer à plusieurs reprises sur ces touches pour agrandir la sélection.

(NOTE: utilisez C-g souvent pour annuler le marquage pendant que Expérimente.)} _

Add-ons

Quelques modules complémentaires améliorent la sélection des régions et des éléments Ce sont tous jouer bien ensemble et s'adaptent à différents cas d'utilisation Utilisez-les tous!

  • Expand-Region: Expand region augmente la région sélectionnée en unités sémantiques. Continuez simplement à appuyer sur la touche jusqu'à ce que vous sélectionniez ce que vous voulez. C-= est une liaison recommandée pour Frappez-le plusieurs fois pour obtenir ce dont vous avez besoin.

  • Easy-Kill: utilisez M-w et Un mnémonique pour sélectionner différents types d'éléments, comme des mots, sexps, des listes , Etc.

  • Zop-to-Char: Comme zap-to-char, mais fournit la sélection de Nice et d'autres actions.

6
Micah Elliott

... et si vous utilisez Ubuntu et C-spc ne fonctionne pas pour vous: vous devez effacer le raccourci clavier "méthode de saisie suivante" d'IBus, comme dans

lancez ibus-setup et remplacez la liaison de clé pour "méthode de saisie suivante" par quelque chose d'autre (ou supprimez-la entièrement en cliquant sur le bouton "..." puis sur le bouton "Supprimer").

Citation tirée de ne réponse à une question SO.

1
serv-inc

Avec Emacs 25, appuyez simplement sur C-Space puis déplacez votre curseur où vous souhaitez mettre en surbrillance/sélectionner la région de texte qui vous intéresse. Après cela, vous aurez peut-être besoin de ces commandes:

  • C-w pour couper.
  • M-w pour copier.
  • C-y pour coller.
0
Billal Begueradj

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

0
Jezz