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

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

2 ответа2

2

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

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

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

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

2

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

  • набрав y l, чтобы "дернуть" символ, начинающийся с позиции курсора, идущий на одну ячейку вправо.
  • перемещение курсора на первую строку, где вы хотите поместить текст
  • Повторно печатая 0 P Enter, пройдя через семь строк.

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

:1,7P

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

:1,7s/^/X/

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .