35 votes

Pourquoi Vim ajoute-t-il des espaces lors de la jonction de lignes?

Je veux déballer du texte dans Vim. Lorsque je joins des lignes, j'obtiens un espace supplémentaire entre les phrases.

Pourquoi donc?

55voto

overthink Points 9471

J'ai le sentiment que c'est ce que vous voulez vraiment: gJ

De :h gJ :

 gJ          Join [count] lines, with a minimum of two lines.
            Don't insert or remove any spaces.  {not in Vi}
 

C'est pratique si vous avez copié quelque chose à partir d'un terminal et que vous l'avez collé comme un gros bloc rectangulaire dans vim, plutôt que comme une seule ligne.

Je l'utilise généralement en mode visuel. Hilight stuff, gJ .

31voto

Jefromi Points 127932

Le formatage détruit de l'information. Il ya beaucoup de différents blocs de texte qui se traduira par la même une fois formaté. Par conséquent, il n'y a aucun moyen d'inverser le fonctionnement sans connaissance préalable (c'est à dire annuler).

Non formaté:

Unformatted text could start out as either all one line, or several, yet look the same when formatted.

Unformatted text could start out as either all one line, or several, 
yet look the same when formatted.

Mis en forme:

Unformatted text could start out as 
either all one line, or several, 
yet look the same when formatted.

Si vous voulez que votre paragraphe sur une seule ligne, ou si vous êtes d'accord avec un petit manuel de jouer du violon, vous pouvez utiliser J pour rejoindre les lignes de retour ensemble. Vous pouvez utiliser le mode visuel pour appliquer l' J commande à plusieurs lignes à la fois, peut-être combiné avec d' ap ou ip pour sélectionner un paragraphe, par exemple, vipJ. Encore une fois, vous aurez toujours perdre des informations - plusieurs espaces à des sauts de ligne avant le formatage sera à la fin s'est effondré à des espaces simples. (Vous pouvez effectivement rejoindre sans modifier les espaces à l'aide de gJ au lieu de J, mais vous aurez déjà perdu lorsque vous avez formaté)

Si vous êtes gêné par les espaces supplémentaires après les phrases (les lignes se terminant en !, ?, ou .), éteignez joinspaces: set nojoinspaces

6voto

Chris Points 1126

C'est la réponse qui a fini par fonctionner pour moi, aucune des réponses ci-dessus n'a fonctionné dans mon cas d'utilisation.

Essentiellement, utilisez gJ comme plusieurs autres l'ont dit, mais mettez en surbrillance tout le fichier, donc en mode commande, tapez:

 ggVGgJ
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X