J'aime que les longues lignes soient affichées sur plus d'une ligne terminale; Je n'aime pas que vim insère des nouvelles lignes dans mon texte actuel. Quelle partie de .vimrc dois-je changer?
Pour plus de clarté: vous aimez que les longues lignes soient affichées sur plusieurs lignes terminales; vous n'aimez pas que vim insère des retours à la ligne dans votre texte actuel? Si oui, alors :set nowrapc'est le contraire de ce que vous voulez :(.
Andrew Aylett
@Andrew: oui votre résumé est exactement ce que je veux
Haiyuan Zhang
Réponses:
304
Utilisation
:set wrap
Pour envelopper visuellement les lignes, 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 comme une seule ligne (c'est-à-dire que vous devez faire défiler horizontalement pour voir la ligne entière).
Merci pour les conseils que vous les gars. Je suis allé avec: set nowrap et: set textwidth = 0 fonctionne très bien
Robert Beltran
5
Lorsque je tape, je veux toujours voir la limite "visuelle" de 80 colonnes et je ne veux pas que vim ajoute automatiquement un saut de ligne lorsque je tape après la 80e colonne. Comment fais-je?
Olivier Pons
7
C'est exactement la réponse que je cherchais, mais ce n'est pas la réponse à la question d'OP. C'est un peu trompeur d'avoir cela comme première réponse. Je ne sais pas comment résoudre cette situation. Je voudrais juste modifier votre réponse pour répondre également à la question d'origine. Mais il existe déjà une bonne réponse qui est presque aussi bien votée. Je viens donc de voter pour changer les deux réponses.
Daniel Darabos
3
C'est exactement la réponse que je ne cherchais pas , et ce n'est pas la réponse à la question du PO.
peeol
Ce n'est pas une réponse à la question.
194
J'aime que les longues lignes soient affichées sur plus d'une ligne terminale
Ce type de retour à la ligne visuel / virtuel est activé avec l' wrapoption de fenêtre:
set wrap
Je n'aime pas que vim insère des nouvelles lignes dans mon texte actuel.
Pour désactiver l'habillage de ligne physique, désactivez les options de tampon textwidthet wrapmargin:
Merci! set textwidth=0 wrapmargin=0fonctionne mais si je le mets .vimrc, il n'a pas d'effet par exemple pour les fichiers en texte brut. Comment trouver et éliminer l'écrasement?
qubodup
7
@qubodup Vous pouvez tester si quelque chose écrase votre paramètre .vimrc en ouvrant un fichier où vous voyez le problème et en entrant :verbose set textwidth? wrapmargin?. Cela vous indiquera leurs valeurs actuelles et également où elles ont été définies. Il est possible que vous ayez un plugin qui les remplace. Dans ce cas, vous pouvez soit désinstaller ce plugin, soit essayer de remplacer le paramètre du plugin plus tard dans votre runtimepath (par exemple:) ~/.vim/afterou avec votre propre autocommande. La bonne approche dépendra de l'endroit / de la façon dont elle est réinitialisée.
Laurence Gonsalves
set wrapet set linebreakc'est ce qui a fait pour moi.
Ilia Choly
36
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' toption insérera des sauts de ligne pour faire du texte à la largeur définie par textwidth. Vous pouvez également mettre cette commande dans votre .vimrc, supprimez simplement les deux points ( :).
Cela me semble la meilleure option pour répondre au souhait du PO. J'aime le fait que vim montre toujours une ligne verticale à tw.
mitchus
3
C'est la seule réponse répondant réellement à la question d'OP. La plupart des autres font le contraire. OP souhaite toujours que les longues lignes s'affichent, mais pour que vim n'insère pas automatiquement les sauts de ligne.
sepastian
33
Utilisez :set nowrap.. fonctionne comme un charme!
Je veux exactement le contraire ... quand je tape, je veux toujours voir la limite "visuelle" de 80 colonnes et je ne veux pas que vim ajoute automatiquement un saut de ligne lorsque je tape après la 80e colonne. Comment fais-je?
Olivier Pons
16
Vous pouvez trouver set lbrutile; avecset wrap sur cela va envelopper mais seulement couper la ligne sur les espaces 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
Il est fortement recommandé d'éviter les options abrégées, car à l'avenir, vous devrez effectuer une recherche sur le système d'aide pour comprendre ce que vous avez réglé, alors utilisez set nolinebreakplutôtset lbr
SergioAraujo
12
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 casser, juste envelopper.)
ET
set formatoptions=l
(cela empêche les lignes nouvelles / modifiées de se casser, tandis que + = ne le fait pas pour moi car d'autres paramètres / plugins semblent trouver de l'espace et ajouter leurs propres options qui remplacent la mienne.)
Si, comme moi, vous exécutez gVim sur Windows, votre fichier .vimrc peut rechercher un autre fichier Vimscript `` exemple '' qui définit automatiquement textwidth(dans mon cas 78) les fichiers texte.
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 s'approvisionne dans ce fichier:
source $VIMRUNTIME/vimrc_example.vim
Dans mon cas, je ne veux textwidthêtre défini pour aucun fichier, j'ai donc simplement commenté la ligne appropriée dans vimrc_example.vim .
Plutôt que de modifier le fichier vimrc_example.vim, je viens d'ajouter autocmd FileType text setlocal textwidth=0au fichier vimrc et cela a résolu le problème lorsque d'autres solutions proposées ne l'ont pas fait.
GrandAdmiral
3
Il est vrai que set nowrap vous permettra de coller une longue ligne sans que vi / vim ajoute de nouvelles lignes, mais la ligne n'est pas visuellement enveloppée pour une lecture facile. Il s'agit plutôt d'une seule longue ligne que vous devez parcourir.
Pour que la ligne s'habille visuellement mais sans y insérer de caractères de nouvelle ligne, définissez l'habillage (qui est probablement par défaut, donc pas nécessaire de la définir) et définissez textwidth = 0 .
Sur certains systèmes, le réglage de textwidth = 0 est par défaut. Si vous ne trouvez pas que ce soit le cas, ajoutez set textwidth = 0 à votre fichier .exrc afin qu'il devienne la valeur par défaut de votre utilisateur pour toutes les sessions vi / vim.
:set nowrap
c'est le contraire de ce que vous voulez :(.Réponses:
Utilisation
Pour envelopper visuellement les lignes, c'est-à-dire que la ligne est toujours une ligne de texte, mais Vim l'affiche sur plusieurs lignes.
Utilisation
Pour afficher les longues lignes comme une seule ligne (c'est-à-dire que vous devez faire défiler horizontalement pour voir la ligne entière).
la source
Ce type de retour à la ligne visuel / virtuel est activé avec l'
wrap
option de fenêtre:Pour désactiver l'habillage de ligne physique, désactivez les options de tampon
textwidth
etwrapmargin
:la source
set textwidth=0 wrapmargin=0
fonctionne mais si je le mets.vimrc
, il n'a pas d'effet par exemple pour les fichiers en texte brut. Comment trouver et éliminer l'écrasement?:verbose set textwidth? wrapmargin?
. Cela vous indiquera leurs valeurs actuelles et également où elles ont été définies. Il est possible que vous ayez un plugin qui les remplace. Dans ce cas, vous pouvez soit désinstaller ce plugin, soit essayer de remplacer le paramètre du plugin plus tard dans votre runtimepath (par exemple:)~/.vim/after
ou avec votre propre autocommande. La bonne approche dépendra de l'endroit / de la façon dont elle est réinitialisée.set wrap
etset linebreak
c'est ce qui a fait pour moi.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't
option insérera des sauts de ligne pour faire du texte à la largeur définie partextwidth
. Vous pouvez également mettre cette commande dans votre.vimrc
, supprimez simplement les deux points (:
).la source
tw
.Utilisez
:set nowrap
.. fonctionne comme un charme!la source
:set tw=0
VIM n'insérera pas automatiquement les sauts de ligne, mais conservera l'habillage de ligne.
la source
Vous pouvez trouver
set lbr
utile; avecset wrap
sur cela va envelopper mais seulement couper la ligne sur les espaces et non au milieu d'un mot.par exemple
et
la source
set nolinebreak
plutôtset lbr
set formatoptions-=t
Conserve la largeur de texte visuelle mais n'ajoute pas de nouvelle ligne en mode insertion.la source
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:
(Cela semble empêcher les lignes existantes de casser, juste envelopper.)
ET
(cela empêche les lignes nouvelles / modifiées de se casser, tandis que + = ne le fait pas pour moi car d'autres paramètres / plugins semblent trouver de l'espace et ajouter leurs propres options qui remplacent la mienne.)
la source
Si, comme moi, vous exécutez gVim sur Windows, votre fichier .vimrc peut rechercher un autre fichier Vimscript `` exemple '' qui définit automatiquement
textwidth
(dans mon cas78
) les fichiers texte.Ma réponse à une question similaire à celle-ci - Comment arrêter le wrapping de gVim dans la colonne 80 - sur le site Vi et Vim Stack Exchange :
la source
autocmd FileType text setlocal textwidth=0
au fichier vimrc et cela a résolu le problème lorsque d'autres solutions proposées ne l'ont pas fait.Il est vrai que set nowrap vous permettra de coller une longue ligne sans que vi / vim ajoute de nouvelles lignes, mais la ligne n'est pas visuellement enveloppée pour une lecture facile. Il s'agit plutôt d'une seule longue ligne que vous devez parcourir.
Pour que la ligne s'habille visuellement mais sans y insérer de caractères de nouvelle ligne, définissez l'habillage (qui est probablement par défaut, donc pas nécessaire de la définir) et définissez textwidth = 0 .
Sur certains systèmes, le réglage de textwidth = 0 est par défaut. Si vous ne trouvez pas que ce soit le cas, ajoutez set textwidth = 0 à votre fichier .exrc afin qu'il devienne la valeur par défaut de votre utilisateur pour toutes les sessions vi / vim.
la source