Как объединить несколько строк в одну строку в VIM? - PullRequest
60 голосов
/ 05 июля 2011

например:

Я хочу объединить такой текст

КАТЕГОРИИ = ['Книги',
'Бизнес',
'Образование',
'Развлечения',
'Финансы',
'Игры',
'Здравоохранение и фитнес',
'Образ жизни',
'Медицина',
'Музыка',
«Навигация»,
«Новости»,
«Фотография»,
«Производительность»,
«Справочник»,
«Социальные сети»,
«Спорт»,
«Путешествия»,
«Утилиты»,
«Погода»,
«Все»,]

в

КАТЕГОРИИ = [«Книги», «Бизнес», «Образование», «Развлечения», «Финансы», «Игры», «Здоровье и фитнес», «Стиль жизни», «Медицина», «Музыка», «Навигация», «Новости»,«Фотография», «Производительность», «Справочник», «Социальные сети», «Спорт», «Путешествия», «Утилиты», «Погода», «Все»,]

Ответы [ 6 ]

100 голосов
/ 05 июля 2011

В командном режиме:

[range]j[lines]

EG: здесь вы хотите сделать весь буфер:

%j

Если вы просто хотите сделать 10 строк из текущей позиции курсора:

j10

Если вы не хотите заменять новые строки пробелами, используйте!после j.

%j!
j!10

и для uberfancy:

5j20

Перейдет к строке 5 и присоединится к следующим 20 строкам.

27 голосов
/ 07 октября 2014

Наиболее интуитивным подходом будет использование режима визуальной линии vim shift + v.Все, что вам нужно сделать, это выбрать содержимое, которое вы хотите объединить в одну строку, а затем нажмите shift + j.

9 голосов
/ 05 июля 2011

Используйте клавишу J (заглавные буквы).Он присоединится к вам:

Проверьте эту ветку , чтобы получить дополнительные параметры объединения, и см. Страницу справки.

6 голосов
/ 05 июля 2011

Для этого конкретного примера будут работать следующие команды:

:1, 21 j

или

:%s/\n/ /g
2 голосов
/ 03 марта 2018
:g/\[/,/\]/j

или

/^CATEGORIES

:v//-1j

А если у вас есть:

edit "Komputer" 
    ala 
    ala 
next 
edit "FortiGate" 
    ala 
    ala 
next

:g/edit/,/next/j
2 голосов
/ 19 ноября 2014

Или объединить все: от открывающей квадратной скобки до закрывающей квадратной скобки (при условии, что в вашем файле их много) и оставив другие строки без изменений

:g/\[/,/\]/j

- это быстро и просто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...