Vous devriez essayer drag-stuff
!
Il fonctionne exactement comme eclipse Alt + Up / Down pour les lignes individuelles, ainsi que pour les lignes de régions sélectionnées !
En plus de cela, il vous permet de déplacer les mots avec Alt + Left / Right
C'est exactement ce que vous recherchez ! Et il est même disponible auprès du Dépôt ELPA !
Les autres solutions n'ont jamais fonctionné pour moi. Certaines d'entre elles étaient boguées (transposer des lignes tout en changeant leur ordre, wtf ?) et certaines déplaçaient exactement la région sélectionnée, laissant les parties non sélectionnées des lignes sur leurs positions. Mais drag-stuff
fonctionne exactement comme dans eclipse !
Et bien plus encore ! Vous pouvez essayer de sélectionner une région et d'utiliser Alt + Left / Right ! Ceci transposera la région sélectionnée d'un caractère vers la gauche ou la droite. Incroyable !
Pour l'activer globalement, il suffit d'exécuter ceci :
(drag-stuff-global-mode)
2 votes
Je suis presque sûr que l'idiome est de tuer ce que vous voulez déplacer, d'utiliser les fonctions de navigation habituelles (y compris isearch, etc.) pour déplacer le point où vous voulez que le code soit, puis de tirer. Il y a une pile de kills, rappelez-vous, donc vous n'avez même pas besoin de trouver l'emplacement immédiatement ; vous pouvez rassembler d'autres morceaux pour les tirer plus tard. Personnellement, en tant que gros utilisateur d'Emacs, je ne peux pas imaginer une situation où je préférerais déplacer manuellement une seule ligne vers le haut ou vers le bas. Ce ne serait tout simplement pas utile.
9 votes
@jrockway : merci pour votre commentaire. Je pense que chacun a sa propre façon de faire les choses. Je travaille beaucoup avec eclipse et je suis très habitué à déplacer des lignes/régions. L'un des grands avantages d'avoir emacs très extensible est que cette fonctionnalité peut être facilement ajoutée.
4 votes
Convenu. Je souhaite souvent déplacer des lignes de haut en bas comme vous le décrivez, que je sois ou non dans un éditeur qui le supporte. Ou, d'ailleurs, que je travaille ou non sur du code. Word prend en charge cette fonction (par paragraphe) avec Alt+Shift+Up et Down, et je l'utilise dans mes éditeurs chaque fois que je le peux.
0 votes
Oui, tout le monde est différent, et les contextes sont différents. J'ajouterai cependant une anecdote. Il y a de nombreuses lunes, avant de venir à Emacs, j'avais moi aussi la même habitude. J'utilisais un (bon) éditeur qui avait des touches pour cela, et c'était juste la façon dont j'étais habitué. Immédiatement après être passé à Emacs, je me suis écrit un code tel que celui mentionné sur cette page, pour faire la même chose : déplacer les lignes ou le texte de la région vers le haut/bas. Finalement, j'ai arrêté d'utiliser cette "fonctionnalité" et j'ai simplement fait ce que la plupart des gens font dans Emacs : kill + yank. Je n'ai jamais regardé en arrière. C'est juste l'histoire d'une personne, FWIW.
10 votes
@Drew et jrockway : Je pense que se contenter de moins est loin d'être la manière emacs. Déplacer des lignes est simplement plus rapide que kill/yankk lorsque vous voulez les déplacer. Et org-mode l'a bien sûr implémenté aussi pour une raison : en effet, il y a de nombreux cas où vous voulez déplacer une ligne, déplacer une déclaration mal placée dans / hors d'un bloc en est un, modifier l'ordre des déclarations, modifier l'ordre des documents (voir org-mode), Beaucoup de gens l'utilisent dans eclipse. Ce que vous n'utilisez pas, vous ne le manquez pas, mais l'utilité de déplacer des lignes est un fait pour un grand nombre de programmeurs.
3 votes
Ceci est utile lors de l'édition de fichiers git-rebase, contenant des listes de commits que vous pouvez vouloir réorganiser.