Измените следующие 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
двойной строку с
yy
pp
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)