Использование diffget в vimdiff

Я пытаюсь научиться хорошо использовать vimdiff. В настоящее время я выяснил, как получить блок diff из буфера в другой (используя do) но сейчас я хочу просто получить одну (или несколько) строк блока в другом буфере.

на vimdiff документация говорит:

:[range]diffget

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

3 ответов


можно использовать

:.,.

в диапазоне от текущей строки до текущей строки.

в соответствии с документом вы можете опустить диапазон, а затем будет использоваться текущая строка или строка выше.


Я считаю, что немного проще выбрать текущую строку с V а потом do или dp. Это имеет тот же эффект, что и выбор ярости с :.,. но это легче напечатать! Кроме того, вы можете легко добавлять смежные строки с помощью j или k.


Как сказал Николай,:.,. в качестве диапазона будет указана "текущая строка".

У меня был очень большой файл, который требовал проверки каждой строки и, возможно, изменения, поэтому введите":.,.diffput " каждый раз было слишком трудно. Я записал макрос:

qq:.,.diffput[ENTER]q

который создал макрос (сохраненный под ключом "q"), чтобы "поместить" одну строку из левого буфера в правый буфер. Теперь, чтобы повторить это действие, все, что мне нужно сделать, это ввести "@q"