Как объединить несколько строк в одну строку в VIM? - программирование
Подтвердить что ты не робот

Как объединить несколько строк в одну строку в VIM?

например:

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

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

в

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

4b9b3361

Ответ 1

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

[range]j[lines]

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

%j

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

j10

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

%j!
j!10

И для uberfancy:

5j20

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

Ответ 2

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

Ответ 3

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

Проверьте эту ветку для получения дополнительной информации о возможностях присоединения и см. Страницу справки.

Ответ 4

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

:1, 21 j

или

:%s/\n/ /g

Ответ 5

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

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

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

Ответ 6

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

Или же

/^CATEGORIES

:v//-1j

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

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

:g/edit/,/next/j