Я пытаюсь сделать vim автоматическим отступом для вкладок и выровнять по пробелам, но на самом деле vim сделать отступ для вкладок и заполнить выравнивание табуляцией + пробелами.
Vim делает это:
(каждый блок является вкладкой)
{
>--long a = 1,
>-->--..b = 2,
>-->--..c = 3;
}
Может сделать это:
{
>--long a = 1,
>--.....b = 2,
>--.....c = 3;
}
Итак, я думаю, что есть много вопросов по поводу вкладок и пробелов, но ни один из них не дает решения Just Works:
- /programming/8493705/vim-use-tabs-for-indentation-spaces-for-alignment-with-c-source-files
- /programming/29208431/vim-indent-with-tabs-align-with-spaces
- /programming/6504507/vim-indenting-and-alignment-combining-spaces-and-tabs
На самом деле я использую:
set ai
set cindent
set cinoptions=(0,:0,u0,U0,g0)
Я попробовал плагин Smart Tab , который, кажется, работает хорошо, но когда я пытаюсь, gg=G
я получаю некоторые странные ошибки:
Error detected while processing function CtabRedoIndent..<SNR>12_CheckAlign:
line 11:
E108: No such variable: "b:ctab_lastalign"
Press ENTER or type command to continue
Error detected while processing function CtabRedoIndent:
line 10:
E170: Missing :endwhile
Эта дискуссия кажется довольно старой, так что теперь, 2015 год, существует официальное решение для ее решения?
tab-characters
whitespace
tjbrn
источник
источник
Ответы:
Делать это действительно автоматически сложно. Вим не знает, что такое «отступ» и «выравнивание»; и некоторые люди могут не согласиться с тем, что именно представляет собой отступ и выравнивание.
Тем не менее, плагин Smart Tabs разработан, чтобы делать то, что вы хотите; Я обнаружил, что он работает достаточно хорошо для файлов C, но имеет ряд предостережений; например, он разбивает файлы Python и иногда делает неожиданные (для меня, в любом случае) вещи для файлов C.
Глядя на источник, я не могу понять, как он работает за 5 минут, и в сочетании с тем, что он ломает некоторые вещи, должен сказать вам, чтобы действовать осторожно ...
источник
Плагин Smart Tabs, о котором вы упомянули, почти не уступает. Сначала я столкнулся с той же ошибкой, что и вы, и сдался, но в конце концов потратил несколько минут, чтобы ее исправить. Попробуйте применить следующий патч:
Позже я обнаружил, что кто-то предложил подобное исправление в вики-разделе Smart Tabs . Увы, нового выпуска не было.
источник
Отступ в vim выполняется просто используя следующий скрипт
Скрипт для выполнения отступа одного файла
источник