Mir gefällt, dass die langen Zeilen über mehr als eine Endleitung angezeigt werden. Ich mag es nicht, dass vim Zeilenumbrüche in meinen eigentlichen Text einfügt. Welchen Teil von .vimrc sollte ich ändern?
Zur Verdeutlichung: Sie möchten, dass die langen Zeilen über mehr als eine Endleitung angezeigt werden. Sie mögen es nicht, dass vim Zeilenumbrüche in Ihren eigentlichen Text einfügt? Wenn ja, dann :set nowrapist das Gegenteil von dem, was Sie wollen :(.
Andrew Aylett
@ Andrew: Ja, Ihre Zusammenfassung ist genau das, was ich will
Haiyuan Zhang
Antworten:
304
Verwenden
:set wrap
Um Zeilen visuell zu umbrechen, dh die Zeile ist immer noch eine Textzeile, aber Vim zeigt sie in mehreren Zeilen an.
Verwenden
:set nowrap
Um lange Zeilen als nur eine Zeile anzuzeigen (dh Sie müssen horizontal scrollen, um die gesamte Zeile zu sehen).
Danke für die Tipps, Leute. Ich ging mit: set nowrap und: set textwidth = 0 funktioniert super
Robert Beltran
5
Wenn ich tippe, möchte ich immer noch das "visuelle" Limit von 80 Spalten sehen und ich möchte nicht, dass vim automatisch Zeilenvorschub hinzufügt, wenn ich nach der 80. Spalte tippe. Wie mache ich?
Olivier Pons
7
Dies ist genau die Antwort, nach der ich gesucht habe, aber es ist nicht die Antwort auf die Frage von OP. Es ist etwas irreführend, dies als Top-Antwort zu haben. Ich weiß nicht, wie ich diese Situation beheben soll. Ich würde nur Ihre Antwort bearbeiten, um auch die ursprüngliche Frage zu beantworten. Aber es gibt bereits eine richtige Antwort, die fast genauso hoch gewählt wird. Also habe ich nur dafür gestimmt, die beiden Antworten zu wechseln.
Daniel Darabos
3
Dies ist genau die Antwort, nach der ich nicht gesucht habe, und es ist nicht die Antwort auf die Frage des OP.
Peeol
Dies ist keine Antwort auf die Frage.
194
Mir gefällt, dass die langen Zeilen über mehr als eine Endleitung angezeigt werden
Diese Art des visuellen / virtuellen Zeilenumbruchs wird mit der wrapFensteroption aktiviert :
set wrap
Ich mag es nicht, dass vim Zeilenumbrüche in meinen eigentlichen Text einfügt.
Deaktivieren Sie zum Deaktivieren des physischen Zeilenumbruchs die Optionen textwidthund und wrapmarginPuffer:
Vielen Dank! set textwidth=0 wrapmargin=0funktioniert, aber wenn ich es einfüge .vimrc, hat es keine Auswirkung, zum Beispiel für reine Textdateien. Wie finde ich das Überschreiben heraus und eliminiere es?
Qubodup
7
@qubodup Sie können testen, ob etwas Ihre .vimrc-Einstellung überschreibt, indem Sie eine Datei öffnen, in der Sie das Problem sehen und eingeben :verbose set textwidth? wrapmargin?. Dies zeigt Ihnen ihre aktuellen Werte und auch, wo sie eingestellt wurden. Möglicherweise haben Sie ein Plugin, das diese überschreibt. In diesem Fall können Sie dieses Plugin entweder deinstallieren oder versuchen, die Plugin-Einstellung später in Ihrem Laufzeitpfad (z. B. :) ~/.vim/afteroder mit Ihrem eigenen automatischen Befehl zu überschreiben . Der richtige Ansatz hängt davon ab, wo / wie er zurückgesetzt wird.
Laurence Gonsalves
set wrapund set linebreakwas hat es für mich getan.
Ilia Choly
36
Ich bin mir nicht sicher, ob ich das vollständig verstehe, aber Sie suchen möglicherweise nach der Konfigurationseinstellung "Formatoptionen". Versuchen Sie etwas wie :set formatoptions-=t. Mit dieser tOption werden Zeilenumbrüche eingefügt, damit der Text in der durch festgelegten Breite umbrochen wird textwidth. Sie können diesen Befehl auch in Ihren Befehl einfügen .vimrc. Entfernen Sie einfach den Doppelpunkt ( :).
Dies scheint mir die beste Option zu sein, um den Wunsch des OP zu erfüllen. Ich mag die Tatsache, dass vim immer noch eine vertikale Linie bei zeigt tw.
Mitchus
3
Dies ist die einzige Antwort, die sich tatsächlich mit der Frage von OP befasst. Die meisten anderen machen das Gegenteil. OP möchte weiterhin, dass lange Zeilen umbrochen angezeigt werden, aber für vim werden Zeilenumbrüche nicht automatisch eingefügt.
Sebastian
33
Verwenden Sie :set nowrap.. funktioniert wie ein Zauber!
Ich möchte genau das Gegenteil ... wenn ich tippe, möchte ich immer noch das "visuelle" Limit von 80 Spalten sehen und ich möchte nicht, dass vim automatisch Zeilenvorschub hinzufügt, wenn ich nach der 80. Spalte tippe. Wie mache ich?
Olivier Pons
16
Sie können set lbrnützlich finden ; mit set wrapon wird umbrochen, aber nur die Linie auf Leerzeichen und nicht in der Mitte eines Wortes geschnitten.
z.B
without lbr the li
ne can be split on
a word
und
with lbr on the
line will be
split on
whitespace only
Es wird dringend empfohlen, Abkürzungsoptionen zu vermeiden, da Sie in Zukunft eine Suche im Hilfesystem durchführen müssen, um zu verstehen, was Sie festgelegt haben. Verwenden Sie also set nolinebreakstattdessenset lbr
SergioAraujo
12
set formatoptions-=t Behält die visuelle Textbreite bei, fügt jedoch im Einfügemodus keine neue Zeile hinzu.
Es ist seltsam, dass eine so einfache Einstellung diese Menge an 'Hokuspokus' erfordert, um zu funktionieren.
Um Ihre Frage jetzt zu beantworten, schien es für mich mit der Kombination der folgenden zu funktionieren:
:set wrap linebreak nolist
(Dies scheint zu verhindern, dass vorhandene Linien brechen. Wickeln Sie sie einfach ein.)
UND
set formatoptions=l
(Dies verhindert, dass neue / bearbeitete Zeilen unterbrochen werden, während + = dies für mich nicht tut, da andere Einstellungen / Plugins anscheinend Platz finden und ihre eigenen Optionen hinzufügen, die meine überschreiben.)
Wenn Sie wie ich gVim unter Windows ausführen , bezieht Ihre .vimrc- Datei möglicherweise eine andere 'Beispiel'-Vimscript-Datei, die automatisch festgelegt wird textwidth(in meinem Fall auf78 ) Textdateien .
In meinem Fall schlug Vitors Kommentar vor, Folgendes auszuführen:
:verbose set tw?
Dadurch erhielt ich die folgende Ausgabe:
textwidth=78
Last set from C:\Program Files (x86)\Vim\vim74\vimrc_example.vim
In vimrc_example.vim habe ich die relevanten Zeilen gefunden:
" 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
...
Und ich habe festgestellt, dass meine .vimrc diese Datei bezieht :
source $VIMRUNTIME/vimrc_example.vim
In meinem Fall will ich nicht textwidth für Dateien festgelegt werden, daher habe ich nur die entsprechende Zeile in vimrc_example.vim auskommentiert .
Anstatt die Datei vimrc_example.vim zu bearbeiten, habe ich sie nur autocmd FileType text setlocal textwidth=0zur Datei vimrc hinzugefügt. Dadurch wurde das Problem behoben, wenn andere Lösungsvorschläge dies nicht taten.
GrandAdmiral
3
Es ist richtig, dass jetztrap gesetzt eine lange Zeile einfügen können, ohne dass vi / vim neue Zeilen hinzufügt, aber dann wird die Zeile zum einfachen Lesen nicht visuell umbrochen. Es ist stattdessen nur eine lange Zeile, durch die Sie scrollen müssen.
Um die Zeile visuell umbrechen zu lassen, aber keine Zeilenumbruchzeichen einzufügen, setzen Sie umbrechen (was wahrscheinlich die Standardeinstellung ist und daher nicht festgelegt werden muss) und setzen Sie textwidth = 0 .
Auf einigen Systemen ist die Einstellung von Textbreite = 0 Standard. Wenn dies nicht der Fall ist, fügen Sie Ihrer EXRC-Datei set textwidth = 0 hinzu, damit sie für alle vi / vim-Sitzungen zum Standard Ihres Benutzers wird.
:set nowrap
ist das Gegenteil von dem, was Sie wollen :(.Antworten:
Verwenden
Um Zeilen visuell zu umbrechen, dh die Zeile ist immer noch eine Textzeile, aber Vim zeigt sie in mehreren Zeilen an.
Verwenden
Um lange Zeilen als nur eine Zeile anzuzeigen (dh Sie müssen horizontal scrollen, um die gesamte Zeile zu sehen).
quelle
Diese Art des visuellen / virtuellen Zeilenumbruchs wird mit der
wrap
Fensteroption aktiviert :Deaktivieren Sie zum Deaktivieren des physischen Zeilenumbruchs die Optionen
textwidth
und undwrapmargin
Puffer:quelle
set textwidth=0 wrapmargin=0
funktioniert, aber wenn ich es einfüge.vimrc
, hat es keine Auswirkung, zum Beispiel für reine Textdateien. Wie finde ich das Überschreiben heraus und eliminiere es?:verbose set textwidth? wrapmargin?
. Dies zeigt Ihnen ihre aktuellen Werte und auch, wo sie eingestellt wurden. Möglicherweise haben Sie ein Plugin, das diese überschreibt. In diesem Fall können Sie dieses Plugin entweder deinstallieren oder versuchen, die Plugin-Einstellung später in Ihrem Laufzeitpfad (z. B. :)~/.vim/after
oder mit Ihrem eigenen automatischen Befehl zu überschreiben . Der richtige Ansatz hängt davon ab, wo / wie er zurückgesetzt wird.set wrap
undset linebreak
was hat es für mich getan.Ich bin mir nicht sicher, ob ich das vollständig verstehe, aber Sie suchen möglicherweise nach der Konfigurationseinstellung "Formatoptionen". Versuchen Sie etwas wie
:set formatoptions-=t
. Mit diesert
Option werden Zeilenumbrüche eingefügt, damit der Text in der durch festgelegten Breite umbrochen wirdtextwidth
. Sie können diesen Befehl auch in Ihren Befehl einfügen.vimrc
. Entfernen Sie einfach den Doppelpunkt (:
).quelle
tw
.Verwenden Sie
:set nowrap
.. funktioniert wie ein Zauber!quelle
:set tw=0
VIM fügt Zeilenumbrüche nicht automatisch ein, sondern umschließt den Zeilenumbruch.
quelle
Sie können
set lbr
nützlich finden ; mitset wrap
on wird umbrochen, aber nur die Linie auf Leerzeichen und nicht in der Mitte eines Wortes geschnitten.z.B
und
quelle
set nolinebreak
stattdessenset lbr
set formatoptions-=t
Behält die visuelle Textbreite bei, fügt jedoch im Einfügemodus keine neue Zeile hinzu.quelle
Es ist seltsam, dass eine so einfache Einstellung diese Menge an 'Hokuspokus' erfordert, um zu funktionieren.
Um Ihre Frage jetzt zu beantworten, schien es für mich mit der Kombination der folgenden zu funktionieren:
(Dies scheint zu verhindern, dass vorhandene Linien brechen. Wickeln Sie sie einfach ein.)
UND
(Dies verhindert, dass neue / bearbeitete Zeilen unterbrochen werden, während + = dies für mich nicht tut, da andere Einstellungen / Plugins anscheinend Platz finden und ihre eigenen Optionen hinzufügen, die meine überschreiben.)
quelle
Wenn Sie wie ich gVim unter Windows ausführen , bezieht Ihre .vimrc- Datei möglicherweise eine andere 'Beispiel'-Vimscript-Datei, die automatisch festgelegt wird
textwidth
(in meinem Fall auf78
) Textdateien .Meine Antwort auf eine ähnliche Frage wie diese - So stoppen Sie das Umschließen von gVim-Text in Spalte 80 - auf der Website von Vi und Vim Stack Exchange :
quelle
autocmd FileType text setlocal textwidth=0
zur Datei vimrc hinzugefügt. Dadurch wurde das Problem behoben, wenn andere Lösungsvorschläge dies nicht taten.Es ist richtig, dass jetztrap gesetzt eine lange Zeile einfügen können, ohne dass vi / vim neue Zeilen hinzufügt, aber dann wird die Zeile zum einfachen Lesen nicht visuell umbrochen. Es ist stattdessen nur eine lange Zeile, durch die Sie scrollen müssen.
Um die Zeile visuell umbrechen zu lassen, aber keine Zeilenumbruchzeichen einzufügen, setzen Sie umbrechen (was wahrscheinlich die Standardeinstellung ist und daher nicht festgelegt werden muss) und setzen Sie textwidth = 0 .
Auf einigen Systemen ist die Einstellung von Textbreite = 0 Standard. Wenn dies nicht der Fall ist, fügen Sie Ihrer EXRC-Datei set textwidth = 0 hinzu, damit sie für alle vi / vim-Sitzungen zum Standard Ihres Benutzers wird.
quelle