Під "переміщення фрагмента тексту до нового файлу" я припускаю, що ви маєте на увазі вирізати цей фрагмент тексту з поточного файлу та створити новий файл, що містить лише цей текст.
Різні приклади:
:1,1 w new_file
створити новий файл, що містить лише текст із рядка № 1
:5,50 w newfile
створити новий файл, що містить текст від 5-го до 50-го рядка
:'a,'b w newfile
створити новий файл, що містить текст від позначки a
до позначкиb
- встановлюйте свої знаки, використовуючи maта mbде завгодно
Наведене лише копіює текст і створює новий файл, що містить цей текст. Потім потрібно буде видалити їх.
Це можна зробити за допомогою того ж діапазону та d
команди:
:5,50 d
для видалення тексту з рядка 5 до рядка 50
:'a,'b d
щоб видалити текст від позначки a
до позначкиb
Або, використовуючи ddдля однолінійного випадку.
Якщо ви замість цього виберіть текст у візуальному режимі, а потім натисніть :
під час вибору тексту, у командному рядку ви побачите наступне:
:'<,'>
Що вказує на вибраний текст. Потім можна розгорнути команду на:
:'<,'>w >> old_file
Який додасть текст до наявного файлу. Потім видаліть, як зазначено вище.
Один вкладиш:
:2,3 d | new +put! "
Розбивка:
:2,3 d
- видалити рядки з 2 по 3
|
- технічно це перенаправляє вихід першої команди на другу команду, але оскільки перша команда нічого не видає, ми просто ланцюжок команд разом
new
- відкриває новий буфер
+put! "
- помістіть вміст неназваного регістра ( "
) у буфер
- Баг (
!
) існує так, що вміст ставиться перед поточним рядком. Це викликає і порожній рядок у кінці файлу. Без нього вгорі файлу є порожній рядок.