Scrollen Sie in Vim gleichzeitig durch beide Teile eines geteilten Fensters

119

Ist es in Vim möglich, den linken und rechten Teil eines vertikal geteilten Fensters nach unten zu scrollen? Ich habe zwei Dateien, die ich grob vergleichen möchte. Jede Zeile dieser Dateien sieht fast gleich aus.

LB40
quelle

Antworten:

90

Informationen zum Scrollen finden Sie in der Dokumentation . Sie müssen dies für jedes Fenster festlegen , das gebunden werden soll (z. B. mindestens 2).

Wenn Sie jedoch zwei Dateien vergleichen, kann vimdiff von größerem Nutzen sein

Brian Agnew
quelle
4
Vimdiff ... wo warst du mein ganzes Leben lang?
HoosierEE
@BrianAgnew gib uns nur einen Befehl zum Kopieren, Mann. Erleichtert unser Leben. Danke für vimdiff!
Nathan
184

Gehen Sie zum ersten Split und geben Sie ein

:set scrollbind

Gehen Sie zum nächsten ( ctrl+ w) und machen Sie dasselbe.

Etwas deaktivieren:

:set noscrollbind

Weitere Informationen finden Sie in der Dokumentation zur Bildlaufbindung - http://vimdoc.sourceforge.net/htmldoc/scroll.html#scroll-binding

vyck
quelle
58
Wenn Sie alle Dateien geöffnet haben, können Sie sie auch :windo set scrollbindfür alle Teilungen gleichzeitig festlegen.
Bernhard
54
:windo set scrollbind

setzt die Bildlaufbindung in allen Fenstern.

Vihaan Verma
quelle
3
Wenn Sie dies häufig tun, kann es nützlich sein, die nmap <F5> :windo set scrollbind!<cr>Bildbindung in allen geöffneten Fenstern umzuschalten.
jlund3
Ich weiß nicht warum, habe scrollbind!aber nicht für mich gearbeitet, aber invscrollbindgetan. Eine SUPER-Zuordnung. Vielen Dank!
UlfR
11

Tag auch,

Versucht mit vimdiff für die beiden Dateien?

vimdiff file1 file2

Dadurch erhalten Sie standardmäßig die Bildlaufbindung.

Rob Wells
quelle
1
Das Problem ist, dass sich alle Zeilen unterscheiden, es beginnt ein Durcheinander zu sein. Die Zeilen sind fast gleich, können sich aber um ein Zeichen unterscheiden ... und ich möchte nicht, dass meine Sicht zu sehr gestört wird.
LB40
1
@ LB40 Sie könnten erwägen, Ihr Farbschema zu optimieren, siehe stackoverflow.com/questions/24666558/…
qneill
8

Über die Befehlszeile:

vim -O file1 file2 -c 'windo set scb!'

-O = nebeneinander geöffnet.

-c = Was in Anführungszeichen folgt, wird als vim-Option behandelt.

'windo' = gilt für alle Panels.

'scb' = Abkürzung für Scrollbind. Spart einige Eingaben, aber die beiden sind austauschbar.

'!' = umschalten. Auf diese Weise können Sie denselben Befehl verwenden, um ihn später zu deaktivieren, wenn Sie dies wünschen.

Noah
quelle
5

Für die Nachwelt musste ich Folgendes tun, da ich nicht mit vimdiff angefangen habe.

Ich habe eine Datei geladen. Dann: vsp, um den anderen zu laden.

Es sind ziemlich unterschiedliche Dateien, aber ich wollte sehen, was zwischen ihnen gemeinsam ist.

So...

:set diff
:set diffopt=iwhite
:set scrollbind
Sam Habiel
quelle
3
Sie können alle für einen bestimmten Puffer (: diff ,: diffopt ,: scrollbind) in einem Befehl mit: diffthis in jedem der Puffer
abrufen