Commencer au début de la ligne 4 ( ESC 4 ESC g g
ou M-4 M-g M-g
pour y aller), C-3 C-k C-2 C-n C-y
(ou ESC 3 C-k down down C-y
si vous n'aimez pas maintenir les modificateurs enfoncés) le fera.
Si vous ne voulez pas faire l'arithmétique dans votre tête, mais sélectionnez plutôt des lignes visuellement, alors
- Déplacer au début de la zone pour se déplacer
C-SPC
mettre la marque
- Descendez au début de la première ligne pour garder
C-w
couper
- Descendez à l'endroit où vous souhaitez insérer le texte coupé
C-y
coller
Je ne pense pas qu'il y ait moyen de raccourcir cela, sauf si vous êtes prêt à perdre une certaine flexibilité (par exemple, si vous voulez souvent déplacer un bloc d'exactement trois lignes). Vous devez fournir trois emplacements: le début du bloc à déplacer, la fin du bloc à déplacer et la destination. Dans les séquences ci-dessus, il y a une seule touche à chaque emplacement, qui est aussi faible que possible.
Gilles 'SO- arrête d'être méchant'
la source
n
àmove-text-down
etmove-text-up
. Cela raccourcit l'étape (2) àM-3
H-S-n
.Vous pouvez utiliser expand-region pour marquer le bloc, s'il s'agit d'une unité sémantique, comme une fonction (le site Web du package explique cela plus en détail). Ensuite, déplacez-le comme l'explique l'autre réponse. Selon l'endroit où vous vous trouvez dans le bloc, une seule touche peut marquer le tout.
la source
Si vous utilisez
evil-mode
, vous pouvez également utiliser uneex
commande::4,6m9
(quim
oves lignes4
à6
la ligne9
).la source
evil-mode
n'est pas exactement obscur - il a près de 18 000 téléchargements sur melpa. Une autre réponse utiliséeexpand-region
, qui est également un package externe. Pour un site de questions / réponses, il est probablement bon d'inclure plusieurs façons d'accomplir la même chose avec différents packages (bien qu'il puisse être utile de proposer des directives).