VI - Вставить что-нибудь в первую позицию / символ последовательности строк

214
bmz

Я хотел бы выдернуть один символ и вставить его в первую позицию последовательности строк. Например, мне нужно добавить «#» в начале 7 строк файла.

Кто-то может мне помочь?

0

2 ответа на вопрос

2
agold

Примечание: этот ответ работает только для VIM, но не для VI.

Вы можете восстановить его в столбце:

  1. Запуск в обычном режиме (не вставлять).
  2. Перейти к первой строке и столбцу (где вы хотите вставить текст).
  3. Нажмите Ctrl+, Vчтобы войти в вертикальный режим выбора.
  4. Выбрав все строки, перед которыми вы хотите вставить текст, нажмите Shift+ I.
  5. Теперь вы можете либо
    1. вставьте свой набранный текст с помощью Ctrl+ R, 0(или другого регистра).
    2. или написать любой текст.
  6. Когда закончите, нажмите Esc, и один и тот же текст появится во всех выделенных строках.

Примечание: вы также можете задать свои вопросы по Vi (m) на: vi.stackexchange.com

Это для * vim *, который не * vi *. Thomas Dickey 8 лет назад 0
Спасибо за ваш ответ!! Я думаю, что это уровень Бога vim! ВОТ ЭТО ДА!! bmz 8 лет назад 0
2
Thomas Dickey

Это во многом зависит от того, что вы звоните vi. Если это действительно оригинал-vi, то вы можете сделать это

  • набрав yl«yank» символ, начинающийся с позиции курсора, идущий на одну ячейку вправо.
  • перемещение курсора на первую строку, где вы хотите поместить текст
  • Повторно печатая 0PEnter, пройдя через семь строк.

В original-vi вы могли воздействовать только на диапазон линий, используя режим ex . Бывший режим viделает принимает диапазон, но аналогичная команда

:1,7P 

не будет характер, но попытка сделать что - то с линиями . Скорее, используя ex mode, вы бы сделали замену, например,put

:1,7s/^/X/ 

но нельзя использовать значение регистра (символ (ы), который вы дернули ) для подстановки.

Дальнейшее чтение:

Спасибо за ваш ответ!! Я буду использовать первый метод вашего ответа ... bmz 8 лет назад 0