Упругие Tabstops в Vim?

26

Есть ли в Vim плагин или встроенная функция, которая позволяет использовать упругие табуляторы ? Я искал немного, и я нашел некоторые ссылки, говорящие, что это было невозможно в Vim, но они были довольно старыми.

Есть ли способ иметь упругие табуляторы в Vim? Я в порядке с решением для Neovim также, поскольку это то, что я использую в любом случае.

Йерун
источник
2
Для этого на Neovim открыт запрос на добавление функции.
Калеб

Ответы:

18

Насколько я могу судить, в плагине нет разумного способа сделать это.

Для него есть патч , но трудно предсказать, когда / если патч будет объединен.

lcd047
источник
6
Кто-нибудь, если вы хотите, чтобы это было объединено, пожалуйста, поболеть за это на vim-dev (и также ответить, как хорошо это работает для вас)
Кристиан Брабандт
2
Этот патч, похоже, не является упругим табом. Вместо этого это переменные табуляции, но вы должны заранее установить точки останова. Это хорошо по-своему, но не совсем то, о чем идет речь.
Калеб
@Caleb, вы, вероятно, могли бы что-нибудь написать, когда патч var tabstop был объединен.
Кристиан Брабандт
@ Кристиан, нет, ты не мог. Посмотрите обсуждение в Интернете, но это не может быть сделано как скрипт / плагин в vim (даже с переменной с tabstop patch), потому что он содержит только один метод для рендеринга всех строк. Это просто не раскрывает то, что вам нужно, чтобы сделать эту работу.
Калеб
5
Упомянутый патч был объединен с 8.1.105
Кристиан Брабандт,
8

Из комментариев: начиная с версии 8.1.105, vim имеет +vartabsфункцию времени компиляции, благодаря Кристиану Брабандту !

Насколько я вижу, это позволяет реализовать упругие таб-стопы. Смотрите фактический запрос на извлечение .

ulidtko
источник
1
Вы можете сослаться на документы или объяснить, как это можно реализовать. Это может помочь будущим читателям больше, чем ссылка на пользователя, который упоминает об этом.
Лукас
2
: set vartabstop = 4,20,10,8 - первая вкладка будет шириной 4, вторые 20 пробелов, третьи 10 пробелов и все последующие вкладки 8 пробелами.
pdwalker
1
vartabstop недостаточно для упругих табов, когда табуляторы не могут различаться между блоками кода. vartabstop применяется ко всему файлу.
Арон Гриффис