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?
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?
Antworten:
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).
Mir gefällt, dass die langen Zeilen über mehr als eine Endleitung angezeigt werden
Diese Art des visuellen / virtuellen Zeilenumbruchs wird mit der wrap
Fensteroption 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 textwidth
und und wrapmargin
Puffer:
set textwidth=0 wrapmargin=0
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
und set 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 dieser t
Option 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 ( :
).
tw
.
Verwenden Sie :set nowrap
.. funktioniert wie ein Zauber!
:set tw=0
VIM fügt Zeilenumbrüche nicht automatisch ein, sondern umschließt den Zeilenumbruch.
Sie können set lbr
nützlich finden ; mit set wrap
on 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
set nolinebreak
stattdessenset lbr
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 .
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 :
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 .
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.
:set nowrap
ist das Gegenteil von dem, was Sie wollen :(.