Смена режимов не должна перемещать текстовый курсор IMO. Любая настройка, чтобы отключить это?
3 ответа
imap <silent> <Esc> <C-O>:stopinsert<CR>
Кажется, работает просто отлично :)
Кроме того, set virtualedit=onemore
необходимо установить для лучшего поведения.
Я знаю, что этот вопрос старый, но я полагаю, что это может понравиться нескольким людям.
Курсор на самом деле не двигается. В командном режиме (который вы называете escape-режимом) он находится на 3-м (например) символе, а когда вы переходите в режим вставки, он находится за 3-м символом.
Это правда, что он будет двигаться, если в режиме вставки вы перейдете в режим замены (нажмите кнопку "вставить" на клавиатуре) :: тогда он переместится на правый символ вашей текущей позиции (в данном случае 4-й символ ).
Я использую vi, vim и теперь gvim уже более десяти лет, и я никогда не замечал этого. Я использую i
для вставки и a
для добавления, и мой набор текста идет туда, куда я хочу. Это может быть незначительной особенностью интерфейса, которую вы просто перестанете замечать через короткое время.
Вы можете предпочесть настройки, рекомендуемые здесь:
Как заставить вырезать / копировать / вставлять в GVim на Ubuntu работу с Ctrl+X, Ctrl+C, Ctrl+V?
Я знаю, что. Эти настройки на самом деле не решают вашу проблему, но если ваш опыт работы с vim/gvim более знаком, вы можете не заботиться о поведении, связанном с переключением персонажей.
Еще одна альтернатива: вы можете попробовать настройки крема (http://cream.sourceforge.net/features.html). Если вы используете Ubuntu или Debian, есть пакет, который вы можете установить с помощью apt-get/aptitude/synaptic (пакет называется cream).