Как совместить две строки сразу в vim

У меня есть файл, содержащий записи с разделителем в виде вкладок, но в двух строках, я хочу организовать записи в одной строке с вкладками, разделенными значениями, используя совпадение шаблона редактора vim.

Ex.

Abc PQR XYZ NMW XYX PQR LMW PLX PXQ LPN PWF XYQ PLP PMQ LWP 

Я хочу добавить каждую вторую строку записи в первую строку записей. Формат вывода, который я хочу, выглядит следующим образом.

 Abc PQR XYZ NMW XYX PQR LMW PLX PXQ LPN PWF XYQ PLP PMQ LWP 

Я попробовал следующую команду для решения моей проблемы.

 :%s/\n(\w\+.*)/\t\1/cgi 

Это заменяет каждую строку данными вкладкой спереди, кроме первой строки.

Как мы можем решить это с помощью сопоставления шаблонов vim и замены?

3 Solutions collect form web for “Как совместить две строки сразу в vim”

Как насчет

 :%s/\n\s\+/\t/gc 

Это найдет любой символ новой строки, за которым последует пробел, и заменит все его вкладкой, объединив ваши строки.

Если вы знаете, что первая строка всегда начинается с буквы, а вторая строка всегда будет начинаться с вкладки, наиболее вероятный способ сделать это, вероятно, будет использовать :g (выполнить команду ex во всех строках, соответствующих регулярному выражению) и j! (объединение без удаления пробелов). Проверьте help :g и help :j . Объединив их, вы получите

 :%g/^\w/j! 

Вы можете сделать это легко с помощью paste :

 paste -sd'\0\n' file 

В vim :

 :%!paste -sd'\0\n' - 
  • Функция завершения командной строки Bash для vim и emacs 'scp: //' Удаленные пути к файлам
  • gvim -p предел открытых вкладок?
  • Как сделать vim apply / var / log / messages подсветкой синтаксиса для любого файла, называемого «сообщениями» или «сообщениями»?
  • Изменить внутренние комментарии с помощью Vim
  • Автозаполнение от выхода grep
  • красно-зеленая цветная слепота совместимая тема vim
  • Цветовая схема Vim не всегда работает
  • vim разбирает мой отступ
  • vim с вкладкой / пробелом в многострочных аббревиатурах в vimrc
  • Условный поиск и замена на строке в vim?
  • Можно ли копировать данные с одного сеанса экрана на другое?
  • Linux и Unix - лучшая ОС в мире.