2010-07-28 4 views

ответ

6

Попробуйте это:

:%s/\s\+/\r/g 

Разъяснение:

:%  // whole file 
s  // substitute 
\s\+ // some number of whitespace characters 
\r // for carriage return 

Благодаря @Dummy00001 для + идеи.

1

введите следующую команду:

:% s// \ г/г

или что-либо иное, чем возврат каретки для вашей среды. \ r для * nix, \ n для окон.

+2

«\ г» правильный ответ: при совпадении, в конце линии " \ n ', при замене конца строки' \ r '. Независимо от платформы. VIM будет обрабатывать все остальное автоматически. Только повышение, которое я бы предложил, добавляет '\ +' после пробела: ':% s/\ +/\ r/g' – Dummy00001

+0

@Dummy: хороший вызов о' + '(добавлю это к моему ответу). – Stephen

+0

@ Dummy rad, не знал, что \ r и \ n независимы от платформы. Благодаря! – coffeepac

1

Это также легко писать как сценарий оболочки, вам не нужно sed или awk:

bash$ for word in $(cat input.txt); do echo "$word" >> output.txt; done 
Смежные вопросы