Інші відповіді залежать від визначення vim та виявлення блоку. Моя стратегія такого роду видалень полягає у використанні c
команди в поєднанні з f
рухом і власне символом, на якому зупиняються. Потім це фактично видалить символ зупинки, але оскільки він також був останньою клавішею, яку ви натиснули повторюючи її двічі, має поряд із нульовою вартістю, і вона знову вставить її після c
зміни режиму вставки.
Пояснити на прикладах, для
func1(x|, func2(), y);
команда c2f))
дасть
func1(x)|;
що спочатку може здатися менш елегантним, ніж деякі інші відповіді, проте зауважте, що ця стратегія є універсальною і не залежить від визначення блоку.
Наприклад, с
<div| class="some-class">text</div>
команда cf>>
дасть
<div>|text</div>
Або під час редагування таких файлів, як CSV
2016-11-29,question,vi|.stackexchange.com,10435
команда cf,,
дасть
2016-11-29,question,vi,|10435
Часто я використовую це для видалення решти рядка з
printf("Hello world| - a boring example\n");
до
printf("Hello world\|n");
з cf\\
або з
print("Hello world| - a boring example");
до
print("Hello world"|);
з cf""
.
Це змінює поточне положення на дещо інше місце, ніж просили, а також переходить у режим вставки. Але я хотів поділитися своїм рішенням щодо видалення решти всього.
C);
в цьому випадку.