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?
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).
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
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 (:
).
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 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
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 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.)
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 .
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.