Opposé au paragraphe de remplissage

25

Emacs a la fonction fill-paragraph. Y a-t-il une fonction qui fera le contraire?

J'ai un paragraphe qui est déjà rempli et à la place je le veux sur une seule ligne?

Sibi
la source
1
fill-paragraphne justifie pas le paragraphe, sauf si vous utilisez un argument préfixe ou lui passez un nilargument non premier. Voir (emacs)Fill Commands .
Drew

Réponses:

20

Extrait du Wiki Emacs , par Stefan Monnier:

Le non-remplissage d'un paragraphe joint toutes les lignes d'un paragraphe en une seule ligne. C'est le contraire de FillParagraph .

Il fonctionne là où une ligne se termine par un caractère de nouvelle ligne ("\ n") et les paragraphes sont séparés par des lignes vides. Pour terminer un paragraphe en un seul saut de ligne, utilisez la fonction ci-dessous:

;;; It is the opposite of fill-paragraph    
(defun unfill-paragraph ()
  "Takes a multi-line paragraph and makes it into a single line of text."
  (interactive)
  (let ((fill-column (point-max)))
    (fill-paragraph nil)))

Et pour le lier à une clé:

 ;; Handy key definition
 (define-key global-map "\M-Q" 'unfill-paragraph)

Voir aussi UnfillRegion et UnwrapLine .

Luc
la source
12
Ceci est une copie directe de la page Wiki d'Emacs UnfillParagraph , avec l' attribution de l'auteur (Stefan Monnier) supprimée. Il est utile de publier les informations ici, mais au moins de préciser qui a écrit le code et le lien vers cette page wiki.
Drew
12
Il est tout simplement poli d'ajouter une attribution lorsque vous utilisez les informations d'une autre personne.
nicael
2
Merci à Malabarba d'avoir apporté les modifications. @KingShimkus: nicael a expliqué pourquoi c'est mieux.
Drew
2
Si vous publiez du contenu écrit par quelqu'un d'autre , vous devez reconnaître vos sources.
Gilles 'SO- arrête d'être méchant'
1
Notez que le lien vers la source a changé. Je l'ai édité dans la réponse.
smonff
4

Ma méthode serait de placer le curseur sur la dernière ligne du paragraphe et d'appuyer M-^plusieurs fois.

La beauté de ce raccourci est qu'à côté des lignes de jonction, il réduit toute quantité d'espaces d'indentation en un seul.

Rajish
la source
AFAIK, vous pouvez le faire M-^et vous n'avez qu'à maintenir la touche enfoncée. La fonction est nommée delete-indentation.
rasmus
Quel est le nom de la fonction M-S-^, cela ne semble pas fonctionner pour moi?
Sibi
Oui, la fonction est delete-indentationet le raccourci est décrit dans Emacs comme M-^- le shift ( S) a été ajouté par moi, car vous devez le maintenir de toute façon. Désolé pour la confusion.
Rajish
2

Il y a le unfillpaquet pour ça maintenant.

Fournit des commandes pour le remplissage explicite (c'est-à-dire le déballage) des paragraphes et des régions, ainsi qu'une commande qui basculera entre le remplissage et le remplissage du paragraphe ou de la région en cours.

Il est basé initialement sur les exemples de Xah Lee et réécrit plus tard sur la base d' un article d'Artur Malabarba

Il fournit les éléments suivants:

M-x unfill-region
M-x unfill-paragraph
M-x unfill-toggle
M-x toggle-fill-unfill

Il est pratique d'ajouter un clavier pratique de votre choix comme:

(global-set-key (kbd "<f8>") 'toggle-fill-unfill)
smonff
la source
Pouvez-vous fournir plus d'informations sur ce @easyE?
smonff
1
Mon erreur: le code basé sur les exemples de Xah Lee n'a pas été incorporé dans Emacs, mais [ est inclus en tant que package MELPA] ( melpa.org/#/unfill ).
easyE
@easyE Je ne comprends pas la différence entre votre commentaire et le contenu de ma réponse, désolé.
smonff
Je n'ai pas soutenu que c'est une différence. Je me trompais en pensant que le pacakge non rempli avait été inclus dans Emacs 25, puis je me suis corrigé.
easyE
1

Comme toujours, il existe plusieurs façons de le faire, je vais donc lancer une autre réponse dans le ring:

  1. Marquer le paragraphe: M-h

  2. Requête remplacer la nouvelle ligne par un espace dans la région:

    M-% C-q C-j RET SPC RET !

itsjeyd
la source
0

Le remplissage d'un pauvre peut aussi être fait en réglant d'abord le fill-column à une valeur ridiculement élevée (j'utilise 9999) puis en le remplissant. Par exemple, C-u 9999 C-x f M-q C-u 70 C-x f. (De plus, vous préférerez peut- C-9 C-9 C-9 C-9être C-u 9999.)

mbork
la source
0

En mode Evil, il y a la Jliaison de clé normal modede VIM. Il joint la ligne ci-dessous et la ligne actuelle en une seule ligne. Ainsi, en appuyant plusieurs fois dessus, vous pouvez annuler le paragraphe de remplissage.

Lenar Hoyt
la source