Vim по умолчанию не предоставляет текстового объекта CamelCase word, поэтому нам придется
создайте это сами. Хорошая новость в том, что нам не нужно изобретать велосипед
поскольку плагин уже существует, и мы можем использовать его в качестве базы: camelCaseMotion
Этот скрипт определяет движения ,w
, ,b
и ,e
(аналогично w
, b
, e
), которые перемещаются не по словам (вперед / назад), а по верблюду. мудрый; то есть к границам слов и заглавным буквам. Проблема в том, что это не
определите текстовый объект, подобный iw
, чтобы выделить все слово. Итак, давайте создадим
это:
Для полноты текстовому объекту нужны два определения: одно для визуального режима и
еще один для оператора в режиме ожидания. Вот наши определения (чтобы добавить к
.vimrc
):
vmap ,i <Esc>l,bv,e
omap ,i :normal v,i<CR>
Как вы видите, мы используем движения ,b
и ,e
, определенные плагином.
Первое определение позволяет набирать ,i
, когда мы находимся в визуальном режиме, и оно будет
выберите текущее «внутреннее слово camelCase». (движение l
- это обходной путь, чтобы всегда получать слово, на котором находится курсор. В противном случае мы получаем предыдущее, когда курсор находится на первой букве слова)
Второе определение использует первое
чтобы операторы типа d
или c
работали с ,i
После того, как мы установили плагин и добавили определения к нашему .vimrc
мы можем сделать то, что вы хотели. Например, если я возьму этот пример:
DefaultHandlerWord
Если мой курсор находится на букве n
из Handler
, я могу использовать:
,e
для перехода к последней букве Handler
,b
для перехода к первой букве Handler
,w
для перехода к первой букве Word
d,i
удалить Handler
и получить только DefaultWord
c,i
удалить Hanlder
и получить возможность заменить его другим словом