Saya sudah mulai menggunakan vimdiff hari ini, dan ingin melakukan beberapa hal yang saya anggap remeh pada editor berbasis Windows (seperti memperluas / menutup bagian diff, memiliki perluasan file penuh / hanya berbeda dengan 3 baris konteks di atas atau di bawah, dll.). Saat ini saya hanya tahu perintah berikut:
Pintasan Keyboard:
do - Dapatkan perubahan dari jendela lain ke jendela saat ini.
dp - Masukkan perubahan dari jendela saat ini ke jendela lainnya.
]c - Lompat ke perubahan selanjutnya.
[c - Beralih ke perubahan sebelumnya.
CTRL+ W, w- Beralih ke jendela pemisahan lainnya ( CTRL+ W, CTRL+ Wmelakukan hal yang sama, jika Anda melepaskan CTRLkunci sedikit kemudian)
Bisakah seseorang mengarahkan saya ke arah yang benar sehingga saya bisa meniru fitur serupa?
Akan lebih baik jika saya dapat memperluas / menutup garis di sekitar diffs, misalnya.
Jawaban:
Selain dari yang Anda sebutkan, saya hanya menggunakan sering ketika membedakan berikut:
:diffupdate
:diffu
-> menghitung ulang diff, berguna ketika setelah melakukan beberapa perubahan vim tidak menunjukkan perubahan minimal lagi. Perhatikan bahwa ini hanya berfungsi jika file telah dimodifikasi di dalam vimdiff. Jika tidak, gunakan::e
untuk memuat ulang file jika telah dimodifikasi di luar vimdiff.:set noscrollbind
-> nonaktifkan sementara pengguliran simultan pada kedua buffer, aktifkan kembali oleh:set scrollbind
dan gulir.Sebagian besar yang Anda minta adalah lipat: bab manual pengguna vim tentang lipat . Di luar diffs saya kadang-kadang menggunakan:
zo
-> lipatan terbuka.zc
-> tutup lipat.Tetapi Anda mungkin akan lebih baik dilayani oleh:
zr
-> mengurangi tingkat lipat.zm
-> satu tingkat lipat lagi, tolong.atau bahkan:
zR
-> Kurangi lipatan sepenuhnya, kataku !.zM
-> lipat Terbanyak !.Hal lain yang Anda minta, gunakan n garis lipat, dapat ditemukan di bagian manual referensi vim pada opsi , melalui bagian pada diff :
set diffopt=<TAB>
, lalu perbarui atau tambahkancontext:n
.Anda juga harus melihat pada bagian manual pengguna pada diff .
sumber
:set noscrollbind
berlaku, itu juga harus:set nocursorbind
digunakan yang bukan default. Jadi kedua opsi harus disesuaikan.atur vimdiff untuk mengabaikan case
Setelah mulai dengan vim
Saya menemukan bahwa satu file yang mengganggu memiliki kata kunci MySQL dalam huruf kecil dan huruf besar lainnya menunjukkan perbedaan pada hampir setiap baris lainnya
ini memperbarui layar secara dinamis & Anda dapat dengan mudah mematikannya lagi
sumber
Sebenarnya jika Anda melakukannya
Ctrl+W W
, Anda tidak perlu menambahkan ituCtrl
. Melakukan hal yang sama.sumber
ctrl + w, w seperti yang disebutkan dapat digunakan untuk menavigasi dari panel ke panel.
Sekarang Anda dapat memilih perubahan tertentu saja dan menempelkannya ke panel lain sebagai berikut. Di sini saya memberi contoh seolah-olah saya ingin mengubah potongan kode saya dari panel 1 ke panel 2 dan saat ini kursor saya ada di panel1
Gunakan Shift-v untuk menyorot garis dan menggunakan tombol naik atau turun untuk memilih potongan kode yang Anda butuhkan dan melanjutkan dari langkah 3 yang ditulis di bawah ini untuk menempelkan perubahan Anda di panel lain.
Gunakan mode visual dan kemudian ubah
1 klik 'v' ini akan membawa Anda ke mode visual 2 gunakan tombol naik atau turun untuk memilih kode yang diperlukan 3 klik, Esc 'escape key 4 Sekarang gunakan' yy 'untuk menyalin atau' dd 'untuk memotong perubahan 5 lakukan' ctrl + w, w 'untuk menavigasi ke pane2 6 klik' p 'untuk menempel perubahan yang Anda inginkan
sumber