Как объединить несколько строк в одну строку в VIM?
например:
Я хочу объединить такой текст
КАТЕГОРИИ = ['Книги',
'Бизнес',
'Образование',
'Развлечения',
'Финансы',
'Игры',
"Здравоохранение и фитнес",
'Стиль жизни',
'Медицина',
'Music',
'Навигация',
'Новости',
'Фотография',
'Производительность',
'Справочник',
"Социальные сети",
'Спорт',
'Путешествие',
'Утилиты',
'Погода',
'Все',]
в
КАТЕГОРИИ = ['Книги', 'Бизнес', 'Образование', 'Развлечения', 'Финансы', 'Игры', 'Здравоохранение и фитнес', 'Образ жизни', 'Медицина', 'Музыка', 'Навигация "Новости", "Фотография", "Производительность", "Ссылка", "Социальные сети", "Спорт", "Путешествия", "Утилиты", "Погода", "Все",]
Ответы
Ответ 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