8

Это может показаться слишком заурядным, но я переключился на vim и теперь очень доволен рабочим процессом. Я стараюсь дисциплинировать себя, чтобы не использовать клавиши со стрелками, так как постоянно держать руки на альфа-клавишах - такая большая вещь при написании. Поэтому, когда мне нужно перейти, я выхожу из режима вставки, перехожу в обычный режим и возвращаюсь в режиме вставки.

Есть исключение, когда это на самом деле более разрушительно: я использую clang complete с фрагментами и super tab это здорово. Кроме каждый раз , когда я получаю функцию автоматического завершения после того, как я заполнить параметры я слева с курсором ) так , чтобы продолжить , я должен переместить курсор на один символ вправо. Как вы можете себе представить, это происходит очень часто.

Единственные варианты, которые у меня есть (насколько мне известно): Esc l a или , и я не рад ни одному из них. Первая заставляет меня нажимать 3 клавиши для простого перемещения курсора на 1 символ, вторая заставляет меня двигать рукой к клавишам со стрелками. Третий вариант - сопоставить CTRL-L или что-то с .

Так каков наилучший способ сделать это?


//snippets (clang complete + supertab):
foo($`param1`, $`param2`)

//after completion:
foo(var1, var2|)
              ^ ^
              | |
     I am here  |
                 Need to be here

| обозначает позицию курсора

2 ответа2

5

Карта ), чтобы пропустить существующие ) если это закрывающая скобка

inoremap <expr> )  strpart(getline('.'), col('.')-1, 1) == ")" ? "\<Right>" : ")"

Взято из: http://vim.wikia.com/wiki/Automatics_append_closing_characters


Старый ответ

:h i_CTRL-O выполнить одну команду, вернуться в режим вставки.

Ctrl-O l переместит вас на один символ вправо, а затем вернет вас в режим вставки.

В качестве альтернативы некоторые из плагинов скобок позволяют вам просто ввести закрывающую скобку ), и они переопределят существующую.

0

Введите следующую команду, чтобы найти управляющие клавиши, которые используются в режиме вставки.

:help insert-index

Ctrl-b не используется, но вы можете пожертвовать другим ключом.

imap <c-b> <right>

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

imap jj <right>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .