Ответ 1
Vim не предоставляет текстовый объект Word CamelCase по умолчанию, поэтому нам придется создайте его сами. Хорошим новым является то, что нам не нужно изобретать велосипед поскольку плагин уже существует, и мы можем использовать его в качестве базы: camelCaseMotion
Этот script определяет движения ,w
, ,b
и ,e
(похожие на w
, b
, e
), которые не перемещаются по словам (вперед/назад), но Camel-накрест; то есть к границам слов и прописным буквам. Проблема в том, что она не
определите текстовый объект, похожий на 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
и получить возможность заменить его другим словом