Ceci est similaire à l' édition de fichiers avec une phrase par ligne (dans la fonction et le motif), mais je souhaite avoir un paragraphe complet et fluide plutôt que des sauts visuels à chaque phrase.
Je voudrais avoir un mode mineur qui, lorsqu'il est actif, joindra visuellement les lignes du même paragraphe (non séparés par \n\n
ou paragraph-separate
ou ...) puis activera un comportement (peut-être dérivé de visual-line-mode
) qui encapsulera la ligne sans réellement l'insérer \n
.
Existe-t-il un tel mode? Sinon, comment procéder pour modifier les propriétés d'affichage d'un paragraphe afin d'obtenir le résultat? (Après tout, c'est le nœud d'un tel mode et un pourrait être développé à partir de l'extrait.)
fill-paragraph
line-break
display
Sean Allred
la source
la source
\n
(s'il est présent), ou voulez-vous qu'il supprime réellement les sauts de ligne pour fournir 1 paragraphe par ligne?buffer-display-table
pour faire apparaître les nouvelles lignes\n
comme des espaces ou quelque chose - voir l'exemple suivant dans le lien: stackoverflow.com/a/24842771/2112489 L'avantage avec cela serait que le texte dans le le document n'est pas modifié. La nouvelle ligne peut être à peu près n'importe quoi - par exemple, un visage souriant, des espaces, un symbole de pilcrow, etc. L'effet visuel est que l'enveloppement se produira.Réponses:
Comme l'a dit Tom, mettre une propriété d'affichage sur les nouvelles lignes sera un travail.
Le problème est de savoir quelles lignes envelopper.
Voici un exemple pour vous aider à démarrer:
Cela "supprimera" les nouvelles lignes si elles sont précédées de caractères graphiques et si la ligne suivante n'est pas en retrait ou vide. Vous devrez expérimenter pour trouver quelque chose qui vous convient.
Quelques explications supplémentaires:
font-lock-add-keywords
ajoute une liste de règles au verrouillage des polices (le verrouillage des polices doit donc être activé. Le premier argument peut être un mode (par exempletext-mode
); dans notre cas, il est nul, ce qui signifie ajouter la règle uniquement pour le tampon actuel.(,eol-regexp 1 '(face default display " "))
. Le premier élément est l'expression régulière que nous avons construite plus tôt; la seconde est la sous-expression qui nous intéresse; le troisième est le "visage" que nous voulons appliquer.font-lock-remove-keywords
.display
àfont-lock-extra-managed-props
(je n'ai pas essayé ceci).la source
Si je comprends bien le problème, c'est que vous souhaitez conserver toutes les nouvelles lignes dans le tampon telles qu'elles sont; mais vous souhaitez en afficher certains sous forme d'espaces. Ensuite, vous souhaitez un habillage de mots.
Pour l'habillage de mots, je pense que vous pouvez utiliser
visual-line-mode
.Pour traiter les retours à la ligne, je pense que vous pourriez peut-être mettre une
display
propriété avec" "
(une chaîne composée d'un seul espace) comme valeur sur les retours à la ligne que vous souhaitez afficher différemment.la source