Много раз в vim я хотел бы полностью удалить строку, поэтому я использую dd. Однако затем мне нужно вставить эту строку в какую-то другую позицию в строке, но это вставляет новую строку перед вставкой, поэтому мне очень трудно получить желаемый результат. Например,
while( pasteInHere )
{
cin >> n; // Delete this line completely with dd
}
когда я делаю это с кодом выше, я получаю:
while( pasteInHere )
cin >> n; // Delete this line completely with dd
{
}
что очень далеко от результата, который я хочу ... как я могу подавить это поведение новой строки или использовать другой метод, который делает это очень эффективно? Я не думаю, что d $ хорошо, потому что мне нужно не только перейти к началу строки, но и если я хочу удалить пустую строку, мне нужно удалить ее в другом регистре, я чувствую, что должен быть более простой способ! Спасибо.
cut-copy-paste
Fyre
источник
источник
0D
удалить строку, кроме разрыва строки. И чемgJ
вступать в ряды. Теперь вы можете поместить текст без строки разрыва и без пустой строки.Ответы:
Вы можете перейти куда угодно в строке выше строки, которую хотите удалить, затем нажать
JD
и вставить ееp
в нужную точку.J
объединяет две строки и перемещает вас в начале текста, который вы хотите удалить. Это удаляет символ новой строки и отступ строки, которую вы хотите переместить.D
удаляет из текущей позиции курсора до конца строки, но сохраняет символ новой строки.Подсказка: Вы можете использовать ,
:pu
если вы удалили сD
или рывком с ,y$
и вы хотите , чтобы вставить с новой строки.источник
Не очень просто, но немного более эффективно, и вы также можете создавать карты в нормальном режиме для обеих последовательностей:
источник
Вы можете достичь чего-то, что хорошо работает с
imap
. Добавьте следующее к вашемуvimrc
:Это создаст сопоставление для CTRL-aкоторого будет вставлен последний удаленный текст (с
dd
или аналогично). Если вы предпочитаете, вы можете использовать другой ключ для сопоставления.Ссылки:
источник
Это тоже подходит для меня, никогда не думал, что оптимизирую его раньше, но это отображение работает:
dil
является «удаление в строке», подобно томуdiw
,di"
и т.д.источник
Вставить без новой строки
Поместите это в ваш файл .vimrc:
Пример:
Теперь вы можете ввести
gp
текст#D51B3F
после того,color:
как мой курсор находится:
в обычном режиме.Янки без новой строки
Используйте ответ Флюкуса:
как аббревиатура удалить внутреннюю строку . Это также избавляет от ведущих отступов.
источник
Вы можете выбрать текст, который хотите скопировать, нажав,
v
а затем перенести его в буфер, нажав,y
а затем вставить его где угодноp
. Он не вставляет новую строку.источник