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?
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?
Réponses:
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).
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' wrap
option 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 textwidth
et wrapmargin
:
set textwidth=0 wrapmargin=0
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
et set 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 par textwidth
. Vous pouvez également mettre cette commande dans votre .vimrc
, supprimez simplement les deux points ( :
).
tw
.
Utilisez :set nowrap
.. fonctionne comme un charme!
:set tw=0
VIM n'insérera pas automatiquement les sauts de ligne, mais conservera l'habillage de ligne.
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
without lbr the li
ne can be split on
a word
et
with lbr on the
line will be
split on
whitespace only
set nolinebreak
plutôtset lbr
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.
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 :
Dans mon cas, le commentaire de Vitor m'a suggéré d'exécuter 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 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 .
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.
:set nowrap
c'est le contraire de ce que vous voulez :(.