Вставить всю вырезанную строку в конец другой строки в vim

Вставить всю вырезанную строку в конец другой строки в vim

Я вырезаю строку с помощью, ddа затем хочу вставить всю строку в конец другой строки. Но проблема в том, что поскольку ddвырезает всю строку, то, вероятно, включает и символ новой строки.

И поэтому, когда я вставляю через p, он автоматически помещает его на следующую строку. А если я делаю Shift+ p, он помещает его перед строкой, на которую я пытаюсь вставить.

Так есть ли способ вставить всю вырезанную мной строку в конец строки?

решение1

Чтобы вырезать строку без новой строки, вы можете нажать d$или Dиз положения курсора. Чтобы вставить ее в конец другой строки, вы можете перейти в ее конец и просто нажать p. В случае, если вы не можете вставить строку так, как ожидали, вы можете перейти в конец строки, куда вы хотели вставить. Затем нажмите , iа затем нажмите <C-R>(Control-R) и "(двойные кавычки). Ваш недавно вырезанный или скопированный текст будет вставлен.

решение2

После того, как вы вставили строку после текущей, pпросто нажмите еще одну jв предыдущей строке, чтобы объединить две строки, тем самым устранив нежелательный перевод строки...

решение3

Лучшее решение, которое я могу придумать на данный момент, это:

A<C-r>+

Это означает: включить режим вставки в конце строки и вставить содержимое регистра +.

Он также вставит новую строку. ddпросто работает с полными строками (сокращение от 1dd).

решение4

Действительно, часто сценарий использования выглядит следующим образом: вы хотите удалить целую строку (включая перевод строки, поэтому d$/ Dне работает, так как оставляет пустую строку), но вставить ее в конец или внутрь какой-то существующей строки, не создавая новую.

МойПлагин UnconditionalPasteпредоставляет несколько отображений, которые автоматически преобразуют содержимое регистра в желаемый вариант использования. Ваш пример будет dd, перейти к целевой строке, $gcp. gcpявляется отображением дляпосимвольная вставка.

Связанный контент