Как выбрать фрагмент текста и вставить его в текущую позицию курсора без использования мыши в vim? - PullRequest
4 голосов
/ 26 февраля 2010

Я хочу отказаться от использования мыши для выделения и вставки фрагментов текста в буфер. Какой самый эффективный способ сделать это только с КБ? Я имею в виду перейти к произвольной строке, скопировать подстроку, вернуться на предыдущую позицию и вставить.

Ответы [ 6 ]

5 голосов
/ 26 февраля 2010

Если вы хотите быстро перейти к строке, используйте поиск, набрав /SUBSTRING и затем Enter после того, как вы нашли правильную подстроку. Обязательно используйте hlsearch и incsearch :set incsearch и :set hlsearch

Когда вы находитесь на правильной строке, вытяните всю строку с yy или все слово с yaw. Затем вернитесь туда, где вы начали поиск, набрав две метки `` Затем вы можете вставить свою выдернутую строку / строку с помощью p

4 голосов
/ 26 февраля 2010

Очень простой метод:

  1. Выберите строки с помощью Shift-V
  2. "Янкировать" (= копировать) текст с y
  3. Вставьте текст с помощью p в нужную вам позицию.

Конечно, существует множество других способов копирования и вставки, например, yy копирует текущую строку.

Пройдите несколько уроков по VIM, это лучше, чем изучать все понемногу.

3 голосов
/ 26 февраля 2010

Мой обычный метод будет:

  1. Используйте визуальный режим для выделения текста с помощью v , V или Ctrl + v
  2. Янк, используя y
  3. Перейдите на линию, на которой вы хотите быть, используя 123G или :123
  4. Перейдите туда, где я хочу находиться в этой строке, с помощью t или f
  5. Поместите текст с помощью p или P

Если вам нужно прыгать туда-сюда между точками, я бы переключался между прыжками, используя g , и g ; .

3 голосов
/ 26 февраля 2010
  • Отметьте текущую позицию, набрав ma (вы можете использовать любую другую букву вместо a, это просто «регистр именованной позиции».
  • перейти к строке и подстроке, например, с помощью / search
  • восстановить текст с помощью y<movement> или пометить его shift/ctrl-v, а затем y
  • вернитесь в ранее отмеченную позицию с помощью `` `a`` (backtick)
  • вставьте свой буфер с помощью p или P
1 голос
/ 26 февраля 2010

Не уверен, что вы подразумеваете под «подстрокой». Если вы хотите скопировать строку 50 в текущую позицию, используйте:

:50t.

Если вы хотите переместить строку 50 в текущую позицию курсора, используйте:

:50m.
1 голос
/ 26 февраля 2010

Используйте «p» для вставки после текущей строки и «P» для вставки выше текущей строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...