Я нашел этот скрипт https://www.vim.org/scripts/script.php?script_id=1649, который на самом деле работает лучше, чем предыдущий ответ. Поскольку вставка текста, кажется, заставляет прокрутку прыгать.
Зеркало здесь:https://github.com/vim-scripts/scrollfix
ZLE заменяет символы TAB в строках подсказок и строках команд ввода -на отображаемые пробелы. Расширение использует фиксированный расчет табуляции каждые 8 столбцов и не включает передачу фактического символа TAB на терминал и, следовательно, фактических настроек табуляции вашего терминала. То же предположение делается, когда он использует TAB в качестве ярлыка для перемещения курсора вправо, когда база данных terminfo/termcap сообщает ему, что у него нет параметризованной последовательности управления курсором вперед.(пример , пример , пример)
Вам повезло с вкладками. В общем, не используйте утилиту -linux setterm
в любом эмуляторе терминала, кроме встроенного -в Linux, который управляет Linux KVT. См.https://unix.stackexchange.com/a/491883/5132для портативного аналога, который не жестко -кодирует Linux, встроенный -в управляющие последовательности эмулятора терминала.
stty -a
покажет вам, настроен ли терминал на использование аппаратных вкладок (, которые можно запрограммировать )или нет (искатьtab0
в выводе ).
zsh
может быть жестко запрограммировано;setterm
безусловно есть (см. это). Это может сработать, если ваш терминал настроен для аппаратных вкладок. Но программаtabs
не жестко закодирована (и, вероятно, установлена на вашем компьютере ).