Vim, LaTeX, Zeilenumbruch und Versionskontrolle

9

Ich schreibe ein LaTeX-Dokument in vim, und ich habe es mit 80 Zeichen umwickelt, um das Lesen zu erleichtern. Dies führt jedoch zu Problemen bei der Verfolgung von Änderungen mit der Versionskontrolle. Zum Beispiel, "Lorem ipsum" am Anfang dieses Textes einfügen:

%Vor%

ergibt:

%Vor%

Wenn ich diese Änderung in git überprüfe, sagt es mir, dass sich alle Zeilen des Absatzes wegen des Wrappings geändert haben, obwohl nur eine semantische Änderung stattgefunden hat. Ein Weg um dieses Problem herum ist, jeden Satz in einer eigenen Zeile zu haben. Das sieht im gerenderten Dokument genauso aus, aber die Quelle ist jetzt schwerer zu lesen, weil jede Zeile eine ganz andere Zeilenlänge hat:

%Vor%

(Wenn ich bei 80 weich wickel, sehen die Dinge immer noch schlecht aus, nur auf eine andere Art.)

Ist es möglich, meinen Text mit einem Zeilenumbruch pro Satz auf der Festplatte zu haben, ihn aber in vim anzuzeigen und zu bearbeiten, als ob der Text jedes Absatzes eine lange Zeile wäre, die mit 80 Zeichen umwickelt ist? Ich nehme an, dass es etwas vim-foo erfordert, anstatt git oder LaTeX zu optimieren.

    
Bkkbrad 26.04.2010, 01:30
quelle

4 Antworten

15

Sie müssen keine seltsamen Bearbeitungsrichtlinien einführen: Das Feature git , nach dem Sie suchen, verwendet git diff --color-words , um Änderungen zu überprüfen.

    
Benjamin Bannier 26.04.2010, 01:48
quelle
1

Ich denke, ein alternativer Weg besteht darin, die Breite des vim-Fensters so zu ändern, wie ich es normalerweise gemacht habe:

  1. Setzen Sie zuerst "set wrap" in die .vimrc, um die "wrap" -Funktion zu aktivieren;

  2. Um vim in einem virtuellen Terminal auszuführen, stelle ich die Fensterbreite des Terminals immer auf 80 Zeichen (wie "urxvt -geometry 80x38") ein. Wenn ich also eine Datei in vim im virtuellen Terminal bearbeite, wird sie automatisch umgebrochen, wenn eine Zeile mehr als 80 Zeichen enthält.

  3. Wenn Sie gvim (gtk-vim, gnome-vim) bevorzugen, können Sie einfach die Größe des gvim-Fensters durch Hinzufügen einer Zeile in .gvimrc wie "set lines = 38 columns = 80" festlegen.

Ich hoffe, das hilft. : -)

    
Zhaojun 27.04.2010 09:41
quelle
0

Ich habe mich selbst über solche Dinge gewundert, und am Ende musste ich einfach ein paar verschiedene Ansätze ausprobieren, um zu sehen, was funktioniert. Eine Sache, mit der ich definitiv nicht zufrieden bin, sind harte Pausen (die von set textwidth=80 erreicht werden können), und zwar aus verschiedenen Gründen:

  • Wenn ich zurück gehe, um den vorherigen Text zu bearbeiten, ist der harte Zeilenumbruch an der falschen Stelle. Es wird entweder meine Grenze von 80 Zeichen überschreiten oder es wird zu weit von meiner Grenze von 80 Zeichen entfernt sein. Sicher, ich kann das in Vim beheben, indem ich verschiedene Varianten des gq Operators verwende (zB gqip , gqap , visueller Modus und dann gq ), aber das ist mühsam und ich vermisse oft meinen Zielbereich mit %Code%. Das ist für mich der größte Nachteil bei harten Pausen. (Wenn Sie gq verwenden, um Absätze zu korrigieren, können Sie gq verwenden, um zu vermeiden, dass nach jeder Periode störende doppelte Leerzeichen entstehen.)
  • Ich habe oft Vim und das PDF Seite an Seite geöffnet. Wenn ich etwas an einer bestimmten Stelle in meinem PDF bearbeiten möchte, suche ich nur nach Fragmenten des Textes. Sie würden sich wundern, wie wenige Stellen in einem Text Sie zwei recht häufige Wörter in einer bestimmten Reihenfolge verwenden, so dass dies wirklich gut funktioniert. Es sei denn, Sie haben harte Unterbrechungen in der Mitte des Satzes, der zwischen den gesuchten Wörtern bricht. Das verzögert meinen Arbeitsablauf ziemlich häufig bei harten Pausen.
  • Ich navigiere oft innerhalb von sentences mit set nojoinspace , f , F oder t . Dies funktioniert nur innerhalb derselben Zeile.
  • Es gibt auch das Problem, das von der OP erwähnt wird, dass Git nicht hart gebrochene Absätze sehr gut behandelt. Sicher, Sie können das Diff trotzdem schön aussehen lassen, es ist also kein großes Problem.

Für mich ist das Verwenden von weichen Pausen (und das Verwenden von beispielsweise einem Satz oder Absatz pro Zeile) keine "seltsame Bearbeitungsrichtlinie", die ich an Git anpasse. Es ist eine (vielleicht seltsame) Bearbeitungsrichtlinie, die ich benutze, um während der Bearbeitung Bequemlichkeit und Effizienz zu ermöglichen. Insbesondere die weichen Zeilenumbrüche, die in der Mitte von Wörtern auftreten, die ich stimme, sehen hässlich aus, aber das kann mit T ausgeschaltet werden.

Wenn Sie zusätzlich einen Absatz pro Zeile verwenden, sollten Sie etwa das gleiche "Aussehen" wie bei harten Brüchen bekommen (was mit set linebreak korrekt beibehalten wird), und Sie können von Satz zu Satz mit% co_de navigieren % und gq . Mit einem Satz pro Zeile erhalten Sie einen mehr zackigen rechten Rand, aber mit den Vorteilen, die Git und Vim bieten, indem Sie einen Satz pro Zeile haben. Probieren Sie beides aus und sehen Sie, was Sie bevorzugen (ich habe mich noch nicht entschieden).

    
sigvaldm 28.03.2018 08:35
quelle
-1

So löse ich das Problem. Zuerst können Sie den vim-Befehl verwenden (im normalen Status), um Ihre Tex-Datei nach den Zeilen zu durchsuchen, die länger als 80 Zeichen sind:

%Vor%

Sie können es als Makro definieren, um sich nicht an die Befehle zu erinnern. Dann geben Sie den normalen Status ein

%Vor%

(also ein kleines "n", ein großes "F", ein Leerzeichen "", ein kleines "a", ein "Enter" und ein). Dies hilft Ihnen, Ihre Linie nach einem Wort sanft zu brechen. Sie können diese fünf Tastenschläge als Makro aufnehmen (Howto: Drücken Sie im Normalzustand "qa" um die Aufnahme zu starten und führen Sie einfach die Schritte "nF a" aus und drücken Sie dann Esc und "q" um zu stoppen. Drücken Sie während der Wiedergabe "@a "Weil wir das Makro in" a "gespeichert haben. Um das Makro 100 Mal zu spielen (es tut nicht weh, wenn Sie es zu oft spielen; es stoppt nur automatisch, wenn der ganze Job beendet ist), indem Sie" 100 @ a "normal drücken Status)

Löst das dein Problem?

    
Xin Guo 23.07.2012 14:24
quelle