Как можно уменьшить ошибки режима при изучении vim? - PullRequest
4 голосов
/ 11 октября 2010

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

Ответы [ 7 ]

13 голосов
/ 11 октября 2010

Я использую эти autocmd для выделения всей строки, содержащей курсор, в режиме вставки, а не в обычном режиме:

if v:version >= 700
  autocmd InsertEnter * set cursorline
  autocmd InsertLeave * set nocursorline
endif

Это обеспечивает немного больше визуальной обратной связи о режиме.

8 голосов
/ 11 октября 2010

Если вы еще этого не сделали, вы можете отобразить текущий режим с помощью :set showmode. Это отобразит -- INSERT -- в строке состояния, когда в режиме вставки.

5 голосов
/ 11 октября 2010

Не забывайте всегда оставлять vim в обычном режиме.

3 голосов
/ 12 октября 2010

Переключатель клавиш «Esc» и «Caps Lock».

Если вы случайно нажмете «Caps Lock», вы начнете вводить команды, которые не имеют ничего общего с тем, что вам нравится делать. Это раздражает, если вы опытный пользователь; если вы новичок, вам может быть трудно понять, что пошло не так.

Каждый раз, когда вам нужно нажать клавишу Esc, вам нужно переместить всю руку и заставить мизинец коснуться клавиши Esc, а затем снова заменить всю руку. Некоторые пользователи Vim скажут вам, что через некоторое время вы привыкнете к этому, и это не имеет большого значения. Я думаю, что аргумент терпит неудачу, потому что вы можете в значительной степени привыкнуть к отображению любой клавиши в любом месте. Это вопрос эффективности.

Я считаю, что "Esc" используется очень часто, а "Caps Lock" используется редко, если вообще используется.

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

2 голосов
/ 11 октября 2010

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

Обычно вам следует проводить больше времени в обычном режиме и всегда нажимать ESC, когда вы закончите вставку чего-либо.

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

2 голосов
/ 11 октября 2010

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

0 голосов
/ 13 октября 2010

Вот мой вариант ответа Неда. Он переключает переключатели окна (фокус окна - еще одно модальное поведение, обеспечивающее небольшую визуальную обратную связь).

if v:version >= 700
    set cursorline cursorcolumn
    au WinLeave * set nocursorline nocursorcolumn
    au WinEnter * set cursorline cursorcolumn
    au InsertEnter * set nocursorline nocursorcolumn
    au InsertLeave * set cursorline cursorcolumn
endif

Я использую его с цветовой схемой Zenburn, а также отключаю мигание курсора:

if has("gui_running")
    colorscheme zenburn
    set guicursor+=a:blinkon0
endif
...