2016-11-06 1 views
1

Скажем, у меня есть следующий текст:Vim: Выравнивание текста в столбцах

key:value1 key:value234 key:val0 
key:val1 key:value1 key:value5 
key:value65799 key:value356 key:3790 

Можно ли каким-то образом, чтобы превратить его в какой-то выровненных колонок?

key:value1   key:value234   key:val0 
key:val1   key:value1    key:value5 
key:value65799  key:value356   key:3790 

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

+1

try ':% s// \ r/g', а затем':%! Pr -3at' – Sundeep

+0

@Sundeep интересно, спасибо! –

ответ

2

Я обычно сначала преобразовать пробелы в #, а затем использовать Align для выравнивания на основе #, то Удалить #.

:%s/\ /#/g 
:'<,'>Align# 
:%s/\ /#/g 

И результат заключается в следующем.

key:value1  key:value234 key:val0 
key:val1  key:value1 key:value5 
key:value65799 key:value356 key:3790 
+0

Спасибо, это похоже на работу :). –

+1

добро пожаловать! Кстати, есть продвинутый плагин под названием easyalign, вам может понравиться. хотя я доволен простой командой Align :) –

2

На Unix-подобной системе:

:%!column -t 
+0

Упорядочить пояснение? – romainl

+0

'column -t' хорошо работает, ++ – Sundeep

+0

@romainl, вы всегда как всегда поможете, спасибо! :). –

2

И если вы не возражаете, используя плагины см tabular.

Здесь вы можете визуально выбрать линий и использование:

:'<,'>Tabular//

Там также vim-easy-align.

+0

Вероятно, лучше всего использовать шаблон с ': Tabularize', например. ': Tabularize//' –

+0

@PeterRincker в этом случае это сработает, но да в целом с использованием шаблона лучше. – statox

+0

Спасибо, @PeterRincker! –