Как я присоединяюсь к двум строкам в vi?

У меня есть две строки в текстовом файле как ниже:

S<Switch_ID>_F<File type>
_ID<ID number>_T<date+time>_O<Original File name>.DAT

Я хочу добавить эти две строки в vi как ниже:

S<Switch_ID>_F<File type>_ID<ID number>_T<date+time>_O<Original File name>.DAT

Вторая строка была удалена, и содержание второй строки был добавлен к первой строке.

Как я мог сделать это с помощью командного режима в vi?

162
задан Peter Mortensen 22 June 2017 в 21:35
поделиться

7 ответов

Shift + J удаляет символ изменения строки из текущей строки, поэтому, нажав "J" в любом месте строки, вы можете объединить текущую строку и следующую строку так, как вы хотите.

298
ответ дан 23 November 2019 в 21:21
поделиться

Vi или Vim?

В любом случае следующая команда работает для Vim в несовместимом режиме. То есть, я полагаю, почти чистый vi.

:join!

Если вы хотите сделать это из обычной команды, используйте

gJ

С помощью 'gJ' вы соединяете строки как есть - без добавления и удаления пробелов:

S<Switch_ID>_F<File type>
_ID<ID number>_T<date+time>_O<Original File name>.DAT

Результат:

S<Switch_ID>_F<File type>_ID<ID number>_T<date+time>_O<Original File name>.DAT

] С командой 'J' у вас будет:

S<Switch_ID>_F<File type> _ID<ID number>_T<date+time>_O<Original File name>.DAT

Обратите внимание на пробел между type> и _ID .

59
ответ дан 23 November 2019 в 21:21
поделиться

Это должно сделать это:

J

22
ответ дан 23 November 2019 в 21:21
поделиться

Просто замените « \ n » на «».

В vi / Vim для каждой строки в документе:

%s/>\n_/>_/g

Если вы хотите подтверждать каждую замена:

%s/>\n_/>_/gc
4
ответ дан 23 November 2019 в 21:21
поделиться

Нажмите Shift + 4 (" $ ") в первой строке, затем Shift + j (" J ").

Если вам нужна помощь, войдите в vi и нажмите F1 .

1
ответ дан 23 November 2019 в 21:21
поделиться

В vi, J (это Shift + J ) или : join должны делать то, что вы хотите, по большей части. Обратите внимание, что они корректируют пробелы. В частности, во многих случаях у вас будет пробел между двумя соединенными строками, и если вторая строка имеет отступ, этот отступ будет удален перед соединением.

В Vim вы также можете использовать gJ ( G , затем Shift + J ) или : присоединяйтесь! . Они будут соединять строки без корректировки пробелов.

В Vim см. : help J для получения дополнительной информации.

15
ответ дан 23 November 2019 в 21:21
поделиться

В Vim также можно использовать gJ.

ََ

.
1
ответ дан 23 November 2019 в 21:21
поделиться