Comment arrêter la rupture de ligne dans vim

J’aime que les longues lignes soient affichées sur plus d’une ligne terminale; Je n’aime pas que vim insère de nouvelles lignes dans mon texte actuel. Quelle partie de .vimrc je devrais changer?

Utilisation

 :set wrap 

Pour envelopper les lignes visuellement, la ligne est toujours une ligne de texte, mais Vim l’affiche sur plusieurs lignes.

Utilisation

 :set nowrap 

Pour afficher les lignes longues comme une seule ligne (c.-à-d. Vous devez faire défiler horizontalement pour voir la ligne entière).

J’aime que les longues lignes soient affichées sur plus d’une ligne terminale

Ce type d’habillage de ligne visuelle / virtuelle est activé avec l’option de fenêtre Wrap:

 set wrap 

Je n’aime pas que vim insère de nouvelles lignes dans mon texte actuel.

Pour désactiver le retour à la ligne physique, wrapmargin les options de tampon textwidth et wrapmargin :

 set textwidth=0 wrapmargin=0 

Je ne suis pas sûr de comprendre tout à fait, mais vous recherchez peut-être le paramètre de configuration «formatoptions». Essayez quelque chose comme :set formatoptions-=t . L’option t insérera des sauts de ligne pour rendre le retour à la largeur défini par textwidth . Vous pouvez également mettre cette commande dans votre .vimrc , supprimez simplement les deux-points (:).

Utilisez :set nowrap .. fonctionne comme un charme!

:set tw=0

VIM n’insère pas automatiquement les sauts de ligne, mais conserve le retour à la ligne.

Vous pouvez trouver set lbr utile; avec set wrap , cela enveloppera mais ne coupera que la ligne sur les espaces et pas au milieu d’un mot.

par exemple

 without lbr the li ne can be split on a word 

et

 with lbr on the line will be split on whitespace only 

set formatoptions-=t Conserve la largeur de texte visuelle mais n’ajoute pas de nouvelle ligne en mode insertion.

Il est étrange qu’un réglage aussi simple exige que cette quantité de “hocus-pocus” fonctionne.

Pour répondre à votre question maintenant, pour moi, cela a semblé fonctionner avec la combinaison des éléments suivants:

 :set wrap linebreak nolist 

(cela semble empêcher les lignes existantes de se briser, il suffit de les envelopper.)

ET

 set formatoptions=l 

(cela empêche les lignes nouvelles / éditées de se briser, tandis que + = ne le fait pas pour moi car les autres parameters / plugins semblent trouver de l’espace et append leurs propres options qui remplacent les miennes).

Si, comme moi, vous exécutez gVim sous Windows, votre fichier .vimrc est peut-être en train de rechercher un autre fichier Vimscript «d’exemple» qui définit automatiquement textwidth (dans mon cas à 78 ) pour les fichiers texte.

Ma réponse à une question similaire à celle-ci – Comment arrêter le texte enveloppant gVim à la colonne 80 – sur le site Exchange de Vi et Vim Stack :

Dans mon cas, le commentaire de Vitor a suggéré que je lance ce qui suit:

 :verbose set tw? 

Cela m’a donné la sortie suivante:

 textwidth=78 Last set from C:\Program Files (x86)\Vim\vim74\vimrc_example.vim 

Dans vimrc_example.vim , j’ai trouvé les lignes pertinentes:

 " Only do this part when comstackd with support for autocommands. if has("autocmd") ... " For all text files set 'textwidth' to 78 characters. autocmd FileType text setlocal textwidth=78 ... 

Et j’ai trouvé que mon fichier .vimrc recherche ce fichier:

 source $VIMRUNTIME/vimrc_example.vim 

Dans mon cas, je ne veux pas que textwidth soit défini pour les fichiers, alors je viens de commenter la ligne appropriée dans vimrc_example.vim .

Il est correct que set nowrap vous permette de coller une longue ligne sans que vi / vim ajoute de nouvelles lignes, mais la ligne n’est pas enveloppée visuellement pour faciliter la lecture. C’est plutôt une longue ligne que vous devez faire défiler.

Pour que la ligne soit visuellement enveloppée sans que des caractères de nouvelle ligne y soient insérés, définissez wrap (qui est probablement la valeur par défaut, donc pas nécessaire de la définir) et définissez textwidth = 0 .

Sur certains systèmes, le paramètre textwidth = 0 est la valeur par défaut. Si ce n’est pas le cas, ajoutez set textwidth = 0 à votre fichier .exrc pour qu’il devienne la valeur par défaut de votre utilisateur pour toutes les sessions vi / vim.