Pliage de code dans Emacs
Parfois, je veux plier un bloc de texte. Dans Vim, vous avez un pliage facile sans fuzz. Sans ajouter de caractères spéciaux comme des "marqueurs" ou des expressions rationnelles spécifiques comme {{{
. Je voudrais sélectionner une région et la plier, sans gâcher la structure.
En regardant autour, il semble qu'il y avait déjà des questions sur le pliage de code dans Emacs. Quelqu'un a dit qu'il n'y avait "pas de solution parfaite". Par exemple, j'ai créé un clip de pliage de code simple dans Vim:
Pliage uni Vim
+ Assez simple, sélectionnez une région et pliez-la.
+ C'est persistant. Lorsque vous tuez le tampon / fermez Vim. Et rouvrez le fichier, les plis sont toujours là.
+ Vous obtenez une barre de surbrillance, pour voir facilement ce qui est plié.
Il existe de nombreuses autres configurations de pliage pour Vim. Je suis content avec Emacs, mais c'est une chose qui me manque. Autres alternatives que j'ai essayées, par exemple HideShow:
HideShow
L'alternative du mal avec hide-show minor mode
. Je l'ai trouvé inutilisable:
- Je ne parviens pas à sélectionner une région et à la plier. Il se replie sur des blocs de code.
- Il n'y a pas de bar ou quelque chose comme ça, pour vous assister c'est plié. Vous pourriez facilement le manquer.
- Ce n'est pas persistant. Si vous rouvrez le fichier, les plis ont disparu.
Il y a un autre paquet, pliez ceci :
Pliez ceci
- C'est une jolie alternative. Cependant, cela gâche l'indentation, car le texte sous le pli est placé à côté du pli ... (?).
- Il est capable de sélectionner visuellement la région et de la plier. Mais cela brise l'indentation, de sorte que l'aperçu est foiré. Pas très pratique.
- Il n'y a pas de bar ou quelque chose comme ça, pour vous assister c'est plié. Vous pourriez facilement le manquer.
Quel est le problème?
Je voudrais répliquer comment Vim fait le pliage. Mais quand j'ai cherché autour, il semble que c'est très difficile de le faire dans Emacs. Je me demande donc s'il y a quelque chose dans emacs ou son architecture qui rend difficile la réplication? Quelles sont les limites?
la source
Réponses:
Essayez
vimish-fold
.traits
piles incluses: activer le mode mineur, lier quelques commandes et tout fonctionnera simplement;
cela fonctionne sur les régions que vous sélectionnez;
c'est persistant: lorsque vous fermez un fichier, vos plis ne disparaissent pas;
en plus d'être persistant, il évolue bien, vous pouvez travailler sur des centaines de fichiers avec beaucoup de plis sans effets indésirables;
il est évident quelles parties du texte sont pliées;
il ne rompt pas l'indentation ou quelque chose;
il peut replier simplement les plis dépliés (oh, mon);
pour les fans de
avy
package: vous pouvez utiliseravy
pour plier du texte avec un nombre minimal de touches!Usage
Créez une liaison pour certaines de / toutes ces fonctions:
vimish-fold
- pliage de base de la région sélectionnée;vimish-fold-unfold
- vous n'avez pas vraiment besoin de lier cela, utilisez simplement C-glorsque le point est placé sur l'en-tête représentant le texte plié;vimish-fold-unfold-all
- néanmoins cela peut être utile;vimish-fold-refold
- oui, vous pouvez le replier;vimish-fold-avy
- utilisezavy
pour plier votre texte!Vous pouvez activer
vimish-fold-mode
sélectivement les modes dans lesquels vous souhaitez avoir un pliage persistant, ou simplement l'activer partout:la source
menu v f
→vimish-fold
,menu v a
→vimish-fold-avy
,menu v u
→vimish-fold-unfold-all
,menu v v
→vimish-fold-refold
. La plupart de mes raccourcis clavier sont comme ça, c'est ma configuration .