Например, если у меня есть эта строка
printf("something\n"); // any comment
« da"
дает мне:
printf(); // any comment
Но мне то, что я хотел бы:
"something\n"
Например, если у меня есть эта строка
printf("something\n"); // any comment
« da"
дает мне:
printf(); // any comment
Но мне то, что я хотел бы:
"something\n"
Эффективный ответ
Нажмите f"d^f"lD
чтобы сохранить текущий объект в текущей строке, удалив остальные из них.
f" - find "
d^ - delete from current cursor position to start of line.
l - move right
D - delete from current cursor till end.(d$)
Вы также можете создать текстовый объект!
:nmap de" f"d^f"lD // de" - delete except double quotes.
Вы можете удерживать курсор в любом месте строки и нажать клавишу de"
.
Редактировать: ранее написанный ответ
Вы можете нажать "sda"
чтобы удалить текущий объект
Затем нажмите dd
чтобы удалить текущую строку.
Затем нажмите "sp
чтобы вставить текущий объект.
В общем, "sda"dd"sp
чтобы сохранить текущий текст в текущей строке.
Вы можете сопоставить это с ключом, как,
:nmap <F5> "sda"dd"sp
_ ................... jump to the first non-blank
f( .................. jump to parenthesis
yi( ................. yank inner ()
dd .................. delete line contents
"0p ................. paste yank register
nnoremap <F2> :exec 'normal _f(yi(dd"0p'<CR>
Изменение, чтобы избежать вставки новой строки
nnoremap <F2> :exec 'normal _f(yi(_dg_"0p'<CR>
Вместо использования dd
с использованием _g_
Это позволяет избежать копирования возврата