Enrouler automatiquement les lignes à la colonne dans VSCode

109

Comment puis-je automatiquement encapsuler des lignes dans VSCode? Je veux dire par là que si une ligne atteint une colonne spécifiée, insérez automatiquement une nouvelle ligne à la limite de mot la plus proche de cette colonne sans dépasser. Vim a un paramètre appelé textwidth qui fait cela que j'aime utiliser lors de l'édition de Markdown. Pour autant que je sache, cela ne ressemble pas à VSCode. Il a juste des moyens de contrôler le softwrapping.

Brian Schlenker
la source
2
Quelqu'un pourrait-il répondre déjà à cela!
umayfindurself
Votre utilisation de cela en ce qui concerne la démarque est brillante, je n'ai jamais pensé à utiliser des pauses difficiles comme ça.
Mark Carpenter Jr

Réponses:

148

VSCode ne prend pas en charge cela par défaut. Mais vous pouvez installer l' Rewrapextension, qui vous permet de formater le bloc dans lequel se trouve actuellement votre curseur en appuyant sur Alt+ Q.

Rewrap ne nécessite aucun autre paramètre, car il lit les paramètres de VSCode pour obtenir la colonne à laquelle couper.

Rewrapprend également en charge le wrapping automatique (désactivé par défaut): https://github.com/stkb/Rewrap/wiki/Auto-wrap

oli_obk
la source
2
Marquer ceci comme réponse acceptée et modifier pour mentionner qu'il prend désormais en charge le réemballage automatique!
Brian Schlenker
1
Il semble que ce ne soit que pour les commentaires de bloc? qu'en est-il des lignes de code? J'ai essayé la dernière version qui est la 1.9.1 et les commentaires de bloc sont automatiquement enveloppés, mais pour les lignes de code (j'utilise le langage C), ce n'est pas le cas.
Yusuf Husainy
3
Il convient de mentionner que cela fonctionne très bien avec MarkDown ❤
chesterbr
2
Je ne peux pas envelopper les lignes de code avec ReWrap comme l'a souligné @YusufHusainy.
Fawwaz Yusran
39

Malheureusement, VSCode n'a pas encore cette fonctionnalité. Mais, nous pouvons toujours le rendre aussi proche que la belle fonctionnalité d' emballage automatique de mots vim .


Premier pas

Nous devons configurer la fonction de retour à la ligne souple dans VSCode.

  1. Ouvrez les paramètres VSCode via Code => Preferences => Settings.
  2. Ajoutez ces 3 lignes de paramètres de l'éditeur.

    "editor.wordWrap": "wordWrapColumn",
    "editor.wrappingIndent": "same",
    "editor.wordWrapColumn": n
    

    N'oubliez pas de changer ( n ) avec votre longueur de ligne de colonnes préférée. Pour moi, je me sens plus à l'aise de le régler à 60.

  3. Enregistrez ce paramètre.

Le but principal de cette première étape est de nous mettre à l'aise lorsque nous tapons car nous n'avons pas besoin de taper manuellement Enteret de voir une longue ligne de texte.


Deuxième étape

Nous devons installer l' émulation Vim pour VSCode et définir vim textwidth.

  1. Installez l'émulation Vim via les extensions VSCode.
  2. Ouvrez les paramètres VSCode via Code => Preferences => Settings.
  3. Ajoutez cette ligne de paramètre vim.

    "vim.textwidth": n,

    N'oubliez pas de changer ( n ) avec votre longueur de ligne de colonnes préférée. Pour moi, je définirai cela de la même manière avec ( n ) dans la première étape.

  4. Enregistrez ce paramètre.


Utilisation réelle

Lorsque vous avez terminé d'écrire votre document dans son intégralité, vous pouvez le formater de manière à ce que les lignes soient en dur.

  1. Bloquer tout le texte en utilisant le mode de ligne visuelle ( Shift+ v)
  2. Tapez «gq»
Wanda Ichsanul Isra
la source
Vous dites "encore". Connaissez-vous des projets ou des travaux en cours?
oli_obk
Non, je ne suis pas sûr. J'ai l'intention de proposer cette fonctionnalité à l'équipe de développement de VSCode. C'est pourquoi je dis «encore» car il pourrait encore y avoir une possibilité que cette fonctionnalité soit ajoutée dans le futur de VSCode.
Wanda Ichsanul Isra
Qu'entend-on par «mode ligne visuelle»? L'utilisation de Shift + v entre juste un V majuscule dans l'éditeur
user1081679
Tapez-le lorsque vous êtes en mode normal, pas en mode insertion
Wanda Ichsanul Isra
15

Maintenant, VSCode prend en charge le wrapping automatique hors de la boîte.

Paramètres -> Éditeur de texte -> Les 3 dernières options (comme aujourd'hui) concernent le recyclage automatique.

  1. Word Wrap (contrôle la façon dont les lignes doivent s'habiller)
  2. Colonne d'habillage de mots (contrôle la colonne d'habillage de l'éditeur)
  3. Retrait d'habillage (contrôle l'indentation des lignes enveloppées)

Par défaut, Word Wrap est désactivé.

Arun Kumar Khattri
la source
26
C'est pour un habillage "doux", c'est-à-dire un habillage lorsqu'il est affiché dans l'éditeur, mais pas un habillage de votre texte réel.
forivall
2

Il existe actuellement une demande ouverte pour cela dans le suivi des problèmes de code VS sur GitHub, vous pouvez le trouver ici

Mark Carpenter Jr
la source
2

Commentaires Hard Wrap

Utilisez l' extension Rewrap .

Code d'enveloppe souple

Ajoutez le paramètre suivant (remplacez la largeur de colonne par votre préférence): "editor.wordWrapColumn": 100

Ensuite, ajoutez soit "editor.wordWrap": "wordWrapColumn"(encapsule à la colonne) ou "editor.wordWrap": "bounded"(encapsule à la colonne ou à la fenêtre).

Commentaires Hard Wrap et Soft Wrap Code

Malheureusement, les paramètres d'extension et VSCode ne fonctionnent pas correctement.

N'hésitez pas à voter pour cette demande de fonctionnalité .

jabacchetta
la source