web-dev-qa-db-fra.com

Comment arrêter la rupture de ligne dans vim

J'aime que les lignes longues s'affichent sur plus d'une ligne de terminal; Je n’aime pas que vim insère des nouvelles lignes dans mon texte. Quelle partie de .vimrc je devrais changer?

232
Haiyuan Zhang

Utilisation

:set wrap

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

Utilisation

:set nowrap

Pour afficher les longues lignes sur une seule ligne (c’est-à-dire que vous devez faire défiler horizontalement pour voir toute la ligne).

279
Brian Rasmussen

J'aime que les lignes longues s'affichent sur plus d'une ligne de terminal

Ce type de retour à la ligne visuel/virtuel est activé avec l'option de fenêtre wrap:

set wrap

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

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

set textwidth=0 wrapmargin=0
186
Laurence Gonsalves

Je ne suis pas sûr de bien comprendre, 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 que le texte soit renvoyé à la largeur définie par textwidth. Vous pouvez également mettre cette commande dans votre .vimrc, il suffit de retirer les deux points (:).

33
Erik Hesselink

Utilisez :set nowrap .. fonctionne comme un charme!

27
Vatsala

:set tw=0

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

25
orip

Vous pouvez trouver set lbr utile; avec set wrap, cela va envelopper mais seulement couper la ligne sur les espaces blancs et non 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
16
dukedave

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

8
Jimmy Tran

Il est étrange qu’un réglage aussi simple nécessite cette quantité de "hocus-pocus" pour fonctionner.

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

:set wrap linebreak nolist

(Cela semble empêcher les lignes existantes de se rompre, juste envelopper.)

ET

set formatoptions=l

(Cela empêche les lignes nouvelles/modifiées de se rompre, alors que + = ne le fait pas pour moi, car les autres paramètres/plugins semblent trouver de la place et ajoutent leurs propres options qui remplacent les miennes.)

4
petroslamb

Si, comme moi, vous exécutez gVim sous Windows, votre fichier . Vimrc est peut-être à l'origine d'un autre fichier "exemple" Vimscript 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 d'habillage de gVim à la colonne 8 - sur le site Vi et Vim Stack Exchange :

Dans mon cas, commentaire de Vitor m'a suggéré de lancer ceci:

: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 compiled 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 . Vimrc est à l'origine de ce fichier:

source $VIMRUNTIME/vimrc_example.vim

Dans mon cas, je ne veux pas que textwidth soit défini pour des fichiers. Je me suis donc contenté de commenter la ligne correspondante dans vimrc_example.vim .

4
Kenny Evitt

Il est exact que défini nowrap vous permettra de coller une longue ligne sans que vi/vim n’ajoute de nouvelles lignes, mais la ligne n’est alors pas visuellement enveloppée pour en faciliter la lecture. en train de lire. Au lieu de cela, vous devez faire défiler une longue ligne.

Pour que la ligne soit renvoyée à la ligne sans y insérer de caractères de nouvelle ligne, définissez le retour à la ligne (qui est probablement par défaut, il n'est donc pas nécessaire de le définir) et set textwidth = 0 .

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

3
Cruciverbalist