Можно ли отключить режим замены в vim?
Проще говоря, как я могу полностью отключить режим Replace в vim? Я никогда не использую режим Replace, но иногда я попадаю в него случайно при повторном входе в режим Insert. Естественно, я добираюсь, набрав несколько символов, прежде чем осознать, что я вхожу в режим замены. Итак, есть ли способ полностью отключить режим замены, будь то через настройку конфигурации или однако?
Ответы
Ответ 1
Вы не можете отключить режим замены, но вы можете сделать автокоманды, которые изменят режим Replace и Virtual Replace обратно в режим Insert:
function s:ForbidReplace()
if v:insertmode isnot# 'i'
call feedkeys("\<Insert>", "n")
endif
endfunction
augroup ForbidReplaceMode
autocmd!
autocmd InsertEnter * call s:ForbidReplace()
autocmd InsertChange * call s:ForbidReplace()
augroup END
Ответ 2
Не уверен, что это лучший способ, но вы можете сопоставить R и r ни с чем в вашем .vimrc:
map R <C-V><C-V>
map r <C-V><C-V>
Изменить: или это:
map R <Nop>
map r <Nop>
Ответ 3
Просто добавьте свой .vimrc imap <Insert> <Nop>
Этого будет достаточно
Ответ 4
Я нашел это решение лучше. Клавиша Insert для входа в режим вставки работает, но режим замены во втором ударе вставки отключен. Поместите следующие две строки в ваш .vimrc
imap <Insert> <Nop>
inoremap <S-Insert> <Insert>
(упомянутый сайтом garyjohn @superuser)
Ответ 5
Используйте клавишу I, чтобы перейти в Insert вместо клавиши Insert
Таким образом, вы не сможете повторно войти в режим вставки