Saya mencoba untuk membatalkan undo di Vim, seperti spacemacs default config. Kadang-kadang ketika saya ingin membatalkan cepat, saya tidak dapat menyadari apa yang berubah karena itu instan. Jadi saya mencoba untuk memiliki sesuatu seperti ini ketika sebuah pers membatalkan:
Adakah yang tahu bagaimana melakukan ini di Vim?
(Saya sudah memiliki plugin Gundo, saya hanya ingin membuat undo default lebih lancar)
Sunting : Plugin undotree berfungsi ( Gundo tidak menyoroti perubahan), cukup gunakan UndotreeToggle
perintah dan semua perubahan di masa depan pada file akan disorot.
matchadd()
, tetapi sedikit lebih rumit menentukan bagian file mana yang telah berubah.Jawaban:
Solusi baru
Anda dapat melihat perubahan terakhir dengan
:changes
perintah. Jadi Anda bisa melihat perubahan baris terbaru Anda dengan regex dan kemudian menerapkan garismatchadd()
seperti yang disarankan oleh @joeytwiddle.Ini kodenya:
Catatan :
Fungsi ini hanya menambahkan sorotan baru tanpa menghapus yang lama, jadi Anda harus menghapus yang lama terlebih dahulu.Denganclearmatches
fungsi ini Anda dapat menghapus kecocokan sebelum menambahkan yang baru. Hati-hati, ini akan menghapus SEMUA pertandingan. Jika Anda ingin lebih terperinci, Anda dapat menyimpan pertandingan dan menghapusnya secara manual:misalnya
Referensi :
Solusi lama
Berikut adalah solusi yang mungkin, terutama terinspirasi oleh penyangga Diff saat ini dan file asli :
Idenya adalah untuk diff file dengan file pada sistem, sehingga Anda membatalkan perubahan terakhir Anda, tulis itu, ulangi perubahan las dan jalankan diff.
Saya pikir ini harus melakukan pekerjaan untuk visualisasi temporal diff waktu-ke-waktu.
sumber
Periksa plugin perubahan saya dan pastikan untuk mengatur variabel
g:changes_linehi_diff
ke 1sumber
Untuk seseorang yang mencoba hal yang sama dengan saya, itu yang paling dekat yang saya raih berkat jawaban.
sumber