Menggulir ke bawah kedua bagian jendela terpisah pada saat yang sama di Vim

119

Apakah mungkin untuk menggulir ke bawah bagian kiri dan kanan dari jendela yang terbelah secara vertikal di Vim? Saya punya dua file yang secara kasar ingin saya bandingkan. Setiap baris file ini terlihat hampir sama.

LB40
sumber

Jawaban:

90

Lihat dokumentasi untuk penjilidan gulir . Anda harus mengatur ini untuk setiap jendela yang ingin Anda jilid (misalnya minimal 2)

Namun, jika Anda membandingkan 2 file, vimdiff mungkin lebih berguna

Brian Agnew
sumber
4
Vimdiff ... kemana saja kamu selama hidupku?
hoosierEE
@BrianAgnew beri kami perintah untuk menyalin. Membuat hidup kita lebih mudah. Terima kasih untuk vimdiff!
Nathan
184

Pergi ke pemisahan pertama, dan ketik

:set scrollbind

Pergi ke yang berikutnya ( ctrl+ w), dan lakukan hal yang sama.

Untuk menonaktifkan:

:set noscrollbind

Untuk info lebih lanjut, periksa dokumentasi untuk scroll binding - http://vimdoc.sourceforge.net/htmldoc/scroll.html#scroll-binding

vyck
sumber
58
Jika Anda membuka semua file, Anda juga :windo set scrollbinddapat mengaturnya untuk semua perpecahan sekaligus.
Bernhard
54
:windo set scrollbind

akan mengatur scrollbind di semua jendela.

Vihaan Verma
sumber
3
Jika Anda sering melakukan ini, mungkin berguna untuk memiliki sesuatu seperti nmap <F5> :windo set scrollbind!<cr>mengaktifkan scrollbind di semua jendela yang terbuka.
jlund3
Tidak tahu mengapa tetapi scrollbind!tidak berhasil untuk saya, tetapi invscrollbindberhasil. Pemetaan SUPER. Terima kasih!
UlfR
11

G'day,

Mencoba menggunakan vimdiff pada dua file?

vimdiff file1 file2

Ini akan memberi Anda scroll binding secara default.

Rob Wells
sumber
1
masalahnya adalah bahwa semua garis berbeda, itu mulai menjadi berantakan .. Garis-garisnya hampir sama tetapi mungkin berbeda satu karakter ... dan saya tidak ingin pandangan saya terlalu terganggu..terima kasih.
LB40
1
@ LB40 Anda mungkin mempertimbangkan untuk mengubah skema warna Anda, lihat stackoverflow.com/questions/24666558/…
qneill
8

Dari baris perintah:

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

-O = buka berdampingan.

-c = yang mengikuti tanda kutip diperlakukan sebagai opsi vim.

'windo' = berlaku untuk semua panel.

'scb' = singkatan dari scrollbind. Menyimpan beberapa pengetikan, tetapi keduanya dapat dipertukarkan.

'!' = beralih. Dengan cara ini Anda dapat menggunakan perintah yang sama untuk mematikannya nanti jika Anda mau.

noah
sumber
5

Untuk anak cucu, inilah yang perlu saya lakukan, karena saya tidak memulai dengan vimdiff.

Saya memuat satu file. Kemudian: vsp untuk memuat file lainnya.

Mereka adalah file yang sangat berbeda, tetapi saya ingin melihat apa yang umum di antara mereka.

Begitu...

:set diff
:set diffopt=iwhite
:set scrollbind
Sam Habiel
sumber
3
Anda bisa mendapatkan semua itu untuk buffer tertentu (: diff,: diffopt,: scrollbind) dalam satu perintah dengan: diffthis di setiap buffer
qneill