VIM - "Довольно" формат столбца структур в C
У меня есть немного кода C с большим typedef
"изд struct
с, и выглядеть так в VIM:
typedef struct {
int a;
someValue* b;
someOtherValue* c;
} val_t;
Когда я включаю "печать пробельных символов" в VIM через :set list
Я вижу код выглядит так (с .
символы, обозначающие пробелы, и -->
обозначает жесткие вкладки):
typedef struct {
int->-->-->-->a;
someValue*....b;
someOtherValue*>>c;
} val_t;
Таким образом, кажется, что этот код имеет смесь жестких вкладок и пробелов повсюду, вероятно, из-за различных редакторов, используемых для его обслуживания. Я пытаюсь написать несколько команд, чтобы привести в порядок. Я знаю, что могу сделать визуальный выбор с помощью SHIFT+V, а затем передать выбор col
с помощью:
:'<:'>!col
Однако вывод в VIM выглядит ужасно, как кажется col
это просто разделение столбцов "логически" (т.е. через три жесткие вкладки), а не лексически, и результат выглядит так:
typedef struct {
int--->--->--->a;
someValue*>--->--->b;
someOtherValue*--->--->--->c;
} val_t;
Есть ли способ сказать col
чтобы выровнять столбцы данных, используя жесткие вкладки фиксированной ширины (то есть: 4 "пробела" на вкладку), как показано ниже, чтобы визуально выровнять начало имен переменных в структуре? Желаемый результат будет:
typedef struct {
int--->--->--->--->a;
someValue*>--->--->b;
someOtherValue*--->c;
} val_t;
Это позволило бы мне переориентировать кучу заголовочных файлов на уровень для каждого блока / структуры вместо того, чтобы тратить часы на ручное выделение фрагментов кода, чтобы выглядеть красиво.
Спасибо.
1 ответ
Вы застряли на жестких вкладках? Если нет, возможно, вы захотите взглянуть на таблицу или vim-easy-align.
С таблицей вы можете сделать что-то вроде этого:
:?{?+,/}/-Tabularize/\ze\w\+;/
Для получения дополнительной помощи см.:
:h \ze
:h range