Измените следующие N символов в VIM
скажем, у меня есть следующая строка:
|add_test() (| == cursor position)
и хотите заменить "добавить" на "del".
del|_test()
Я могу либо нажать X три раза, а затем нажать i, чтобы вставить и ввести del. То, что я хочу, это что-то вроде 3c или 3r, чтобы перезаписать только 3 символа. Оба они не делают то, что я хочу, 3c перезаписывает 3 символа с тем же самым характер, 3r делает несколько других вещей.
есть ли простой способ сделать это без ручного фиксации и вставки сообщение?
6 ответов:
3s, "заменить 3 символа" - это то же самое, что иc3l.3clиc3lдолжно быть то же самое, я не знаю, почему вы увидите тот же символ повторяется. Я также поклонник использованияt, например,ct_как упоминалось в другом плакате, тогда мне не нужно подсчитывать символы и можно просто ввести "del".я тоже боролся с "заменой нескольких символов" в течение нескольких дней; 'r' отлично подходит для одиночных символов,
Rбыло здорово для строки соответствующей длины, но Я хотел что-то вроде того, о чем просит ОП. Итак, я набрал:help xи прочитав некоторое время, выясняется, что описаниеsиSнаходятся всего в нескольких страницах отx.другими словами,
:help- твой друг. Читайте и учитесь.
использовать c{motion}:
- cf_ - изменить до первого ' _ ' (включая);
- ct_ - изменить до первого '_' (исключая);
- cw - меняем первое слово;
слово определяется iskeyword переменной. Проверьте это с :набор iskeyword? и удалить любой'_', как это : set iskeyword=@, 48-57, 192-255. По путь см. : помогите c и :помогите движения Если вы хотите больше.
Я думаю
3clЭто то, что вы хотите. Он меняет 3 символа вправо. Я бы набралct_del<esc>, но это не то, что ты просил
c3('c', '3', пробел), затем введите символы, которые вы хотите вставить. (Или вы можете использовать стрелку вправо илиl, а не в пространстве.)или, как только что сказал @ Mike в комментарии,
Control-RRотлично работает, если количество символов совпадает с количеством символов, которые вы удаляете.или
ct_чтобы перейти от курсора к следующему_символ.
Если работы имеют одинаковую длину, можно использовать
Rкоманда, которая заменяет то, что вы имели ранее с тем, что вы вводите.
другие ответы использовать цифры. Когда текст длиннее, его легче не считать. Например, я часто делаю заголовки в файлах markdown, таких как:
Some super duper long title that I don't want to have to countдвойной строку с
yypp
Some super duper long title that I don't want to have to count Some super duper long title that I don't want to have to countвыделите всю строку с
Vтогда используйтеr{char}или в данном случаеr=для:
Some super duper long title that I don't want to have to count ==============================================================(Я добавил пробел выше, чтобы отключить форматирование markdown Stack overflow)