Cara menonaktifkan pengguliran horizontal
Saya telah menulis solusi yang menonaktifkan pengguliran horizontal, (dengan melepas saran @ ЯрославРахматуллин ), tetapi saya tidak berpikir Anda akan menyukainya:
augroup NoScrollPlease
autocmd!
autocmd CursorMoved * norm!99zH
augroup END
Ini mencegah pengguliran ke kanan dengan metode yang sangat tepat dengan hanya menggulir kembali. *
* Karena saya tidak tahu seberapa jauh Anda menggulir ke kanan atau berapa lama garis Anda, saya menggulir jumlah "setengah" sewenang-wenang dari 99 lebar layar setengah. Perhatikan juga bahwa saya tidak repot-repot memeriksa apakah Anda benar-benar telah menggulir ke kanan sebelum menggulir "kembali" ke kiri. Jika Anda benar-benar berniat untuk menggunakan solusi ini, Anda mungkin ingin mengetuk sesuatu dengan membandingkan nilai-nilai getcurpos()
, 'sidescroll'
dan 'columns'
.
Mengapa Anda tidak mau melakukannya
Alasan Anda tidak akan menggunakan ini adalah bahwa yang mendasari masalah gulir adalah masalah lain: Vim tidak akan membiarkan Anda memindahkan kursor "dari layar". Oleh karena itu, jika Anda menggulir ke kiri sedemikian rupa sehingga kursor akan mati layar setelah gulir, Vim membantu membawa kursor bersamanya dan memindahkannya ke kiri.
Tetapi karena perhitungan yang digunakan untuk apakah kursor ada di layar sama dengan yang digunakan untuk memutuskan apakah akan menggulir masalah asli, efek bersihnya adalah dengan adanya "solusi" ini di tempat, jika Anda mencoba untuk memindahkan kursor ke kanan dalam situasi yang biasanya menyebabkan gulir ke samping, sekarang kursor menolak untuk bergerak sama sekali. **
** Untuk sedikit lebih tepat, tergantung pada posisi saat ini dan gerakan, kursor dapat bergerak ke kanan; itu tidak akan bergerak melewati posisi di mana sebuah scroll biasanya muncul.
Pilihan lain?
Jadi saya khawatir solusi yang Anda rencanakan tidak akan berhasil. Jika Anda ingin solusi yang bisa diterapkan untuk masalah umum, itu perlu diimplementasikan dalam kode sumber Vim.
Seperti yang sudah Anda catat , ini tidak mungkin tiba dalam waktu dekat, jadi saya khawatir Anda sebaiknya mencari solusi untuk contoh spesifik masalah yang ditampilkan di gif Anda adalah mengajukan petisi kepada pembuat plugin untuk berhenti menggunakan conceal
sepenuhnya dan sebagai gantinya hapus teks tersembunyi dari buffer sepenuhnya.
Berdasarkan output yang tidak dikenali dan disebutkan vim-plugin-AnsiEsc
dalam dokumentasi ini mungkin sesuatu yang mungkin bagi mereka untuk menerapkan, tetapi sulit untuk mengatakan dengan pasti tanpa pengetahuan tentang bagaimana fungsi plugin.
:set wrap