Як відключити горизонтальну прокрутку
Я написав рішення, яке відключає горизонтальну прокрутку, (відриваючи пропозицію @ ЯрославРахматуллін ), але не думаю, що вам це сподобається:
augroup NoScrollPlease
autocmd!
autocmd CursorMoved * norm!99zH
augroup END
Це запобігає прокрутці праворуч неймовірно точним методом просто прокрутки назад. *
* Оскільки я не знаю, як далеко ви прокручували праворуч або як довгі ваші рядки, я прокручую довільно "далеко" кількість 99 половини ширини екрана. Зауважте також, що я не намагаюся перевірити, чи ви насправді прокручували праворуч, перш ніж прокручувати "назад" вліво. Якщо ви на самому справі збираєтеся використовувати це рішення , яке ви можете постукати що - то шляхом порівняння значень getcurpos()
, 'sidescroll'
і 'columns'
.
Чому ви не збираєтесь цього робити
Причина того, що ви не збираєтеся використовувати це, полягає в тому, що в основі проблеми прокрутки - ще одна проблема: Vim не дозволить вам переміщувати курсор "з екрана". Тому, якщо прокрутити ліворуч таким чином, що курсор після екрана буде вимкнений з екрана, Vim корисно приводить курсор разом із ним і переміщує його вліво.
Але оскільки обчислення, яке він використовує для того, чи знаходиться курсор на екрані, є таким самим, як той, який він використовує для вирішення питання про прокрутку вихідної проблеми, чистий ефект полягає в тому, що при використанні цього "рішення", якщо ви намагаєтеся перемістити переміщення курсор праворуч у ситуації, яка зазвичай спричиняє бічну прокрутку, тепер курсор взагалі відмовляється рухатись **.
** Щоб бути дещо точнішим, залежно від поточного положення та руху, курсор може рухатися вправо; він просто не переміститься повз положення, де зазвичай прокручується.
Інші варіанти?
Тому я боюся, що запланований спосіб вирішення проблем не вийде. Якщо ви хочете впоратись із вирішенням загальної проблеми, її потрібно буде реалізувати у вихідному коді Vim.
Як ви вже зазначали , це навряд чи настане незабаром, тому я боюся, що найкращим варіантом для вирішення конкретного примірника проблеми, показаного у вашому gif, є подання клопотання щодо автора плагіна conceal
повністю припинити його використання та замість цього видаліть прихований текст повністю з буфера.
Виходячи з не прихованого виходу та згадки vim-plugin-AnsiEsc
в документації, це може бути те, що вони можуть реалізувати, але важко сказати точно, не знаючи, як плагін функціонує.
:set wrap