IdeaVIM: Как мне удобно переименовать извлекаемую переменную?

В IdeaVIM, если я извлекаю переменную и хочу назвать ее, кажется, что я нахожусь в визуальном режиме (имя переменной подсвечено), но я не могу найти способ изменить то, что выделено. Вот изображение:

Если я наберу cничего не делает. Если я наберу cc, это меняет всю строку. По сути, он действует как будто я в командном режиме, но имя подсвечивается, как будто оно в визуальном режиме. То, что я хочу сделать в 99% случаев, это изменить это слово. Тем не менее, курсор раздражает один символ после слова так ciw не меняет это.

Какой удобный способ переименовать эту переменную? Я обычно делал hciw, Я бы предпочел, чтобы "переменная извлечения" переводила меня прямо в режим вставки.

2 ответа

Это немного нелогично, но самое простое - сразу i чтобы войти в режим вставки, затем начните вводить новое имя, и оно заменит выделенный текст.

Проблема, на мой взгляд, заключается в том, что vim является модальным, а ванильный IntelliJ также модальным, и здесь у вас есть взаимодействие двух наборов мод. Чтобы понять режимы IntelliJ, попробуйте отключить IdeaVIM с помощью ^Z и используйте рефакторинг переменной extract. Обратите внимание, что если вы начнете печатать сразу, то, что вы печатаете, заменяет выделенный текст, но если вы сначала переместите курсор, а затем начнете печатать, то то, что вы печатаете, вставляется в курсор. Теперь добавьте IdeaVIM в смесь: как только вы находитесь в режиме вставки, поведение IntelliJ начинает действовать.

См. VIM-274 для запроса об изменении этого поведения и некоторого обсуждения альтернатив.

Для "Извлечь переменную", как только вы дойдете до точки, где предлагаются имена: назовите предложения

Все, что всегда работает, это нажать Escape, b, cw, а затем набрать новое имя. Иногда вы можете сразу нажать b, но часто по какой-то причине это переводит меня в визуальный режим, поэтому нажатие Escape гарантировано.

Другие вопросы по тегам