
Я пытаюсь написать команду в Vim, которая может удалить 9 и 11 символы в третьей строке. Я сделал это, 3s/9, 11///
но ничего не произошло, как я ожидал. Буду благодарен, если вы сделаете это с вашими предложениями. Если быть точнее: я хочу удалить 9-й и 11-й символы в третьей строке. Например, у меня есть три строки
- три метра над уровнем моря
- три метра ниже уровня моря
- нужна помощь в vim
Поэтому я хочу удалить 9-й символ в третьей строке, то есть букву «e» в слове «some», и 11-й символ, то есть букву «h» в слове «help».
решение1
Многократное совпадение объясняется в разделе 27.4 Matching multiple times
главы 27 руководства пользователя (см. :help usr_27.txt
).
Следующая команда удалит первые 9, 10 или 11 символов строки 3, если строка содержит не менее 9 символов. Если строка содержит меньше символов, она вернетE486: Pattern not found:
:3s/.\{9,11}//
Не уверен, что это то, что вы хотите. Если нет, обновите свой вопрос, пожалуйста.
решение2
В режиме редактирования введите:
08lxl.
0
переместить курсор в начало строки8l
переместить курсор вперед на 8 символовx
удалить символ под курсоромl
переместить курсор вперед на 1 символ.
повторить последнюю команду (x)
Если вы хотите привязать это к клавише (например ,
):
:map , 08lxl.
После этого при каждом нажатии ,
в режиме редактирования будут выполняться эти команды.