1

Предполагая строку, такую как:

grep -ir "$@" * | grep -v "/.svn/" | grep -v "/inc/help/" | head -n 100

Если курсор находится на первом | и я хочу удалить до head , как я могу сделать это с т? Я знаю, что могу выбрать v/hea до hea но когда я затем удалю текст, я уберу также и первую h в head . Я мог только h назад персонаж, но теперь это цепь обходных путей. Это работает, но я хотел бы знать, есть ли лучший способ.

Есть ли способ, чтобы t зависело от двух или более символов вместо одного символа?

5 ответов5

2

если вы можете сделать это в интерактивном режиме, вы можете попробовать это с easymotion-плагином:

d;;fh -> будет серым весь текст и помечает все буквы h красным цветом, но заменяет их на a,b,c,… а затем вы можете нажать b чтобы удалить его до второго h .

Я знаю, что это описание немного загадочно - посмотрите на YouTube видео

PS: я забыл упомянуть ; мой ключ лидера

1

d2fh сделает это в вашем примере.

1

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

Таким образом, лучшее решение, которое я нашел, это просто dth и если это не удаляет до нужного мне символа, тогда я могу просто нажать . сделать это снова.

Спасибо!

1

Попробуй это:

:vnoremap / //b-1<left><left><left><left>

Когда вы набираете v чтобы визуально выбрать регион, затем набираете / чтобы начать поиск конца региона, Vim введет

//b-1

в командную строку с курсором над секундой / . Затем вы вводите 2 или более символов, которыми хотите завершить регион, и нажимаете Enter. b-1 говорит Vim искать этот шаблон и поместить курсор на один символ до -1 в b eginning матча. Увидеть

:help search-offset

Вы не должны наносить на карту / . Вы можете сопоставить t или другого персонажа вместо этого.

0

Нет, t принимает только один символ. Я бы сделал vththd .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .