我在使用vim时经常会出现模式错误,即我会在正常模式下开始输入文本,或者在插入模式下开始键入命令。我知道随着时间的推移,随着时间的推移vim的怪癖渗入你的骨头,但有没有办法加速这个过程?
答案 0 :(得分:13)
我在插入模式下使用这些autocmd来突出显示包含光标的整行,而不是在正常模式下:
if v:version >= 700
autocmd InsertEnter * set cursorline
autocmd InsertLeave * set nocursorline
endif
这提供了关于模式的更多视觉反馈。
答案 1 :(得分:8)
如果您还没有这样做,可以使用:set showmode
显示当前模式。在插入模式下,状态栏中会显示-- INSERT --
。
答案 2 :(得分:5)
尽量记住要让vim保持正常模式。
答案 3 :(得分:3)
切换“Esc”和“Caps Lock”键。
如果您不小心点击“大写锁定”,您将开始输入与您喜欢的操作无关的命令。如果您是一位经验丰富的用户,这很烦人;如果你是初学者,那么理解出了什么问题可能很麻烦。
每当你需要按下Esc键时,你必须移动整个手,让你的小拇指触摸Esc键然后再次更换整个手。 一些Vim用户会告诉你,过了一段时间你就习惯了这样做,这不是什么大问题。我认为这个论点不足,因为你几乎可以习惯在任何地方映射任何键。这是一个效率问题。
我相信“Esc”的使用非常频繁,如果使用它,很少使用“Caps Lock”。
因此,切换两者是有意义的,因为它可以防止错误并提高打字速度。
答案 4 :(得分:2)
使用gvim,当在模式之间移动时,光标从块变为垂直条。这至少给你一点视觉反馈。
答案 5 :(得分:2)
插入模式应该只是暂时的。正如其名称所示,正常模式是编辑任务的最爱模式。
通常,您应该在正常模式下花费更多时间,并在插入内容时始终按ESC键。
也许我只为自己说话,但现在我习惯于假设我一直处于正常模式,而且我几乎从不错。
答案 6 :(得分:0)
这是我对Ned的答案的变种。它在窗口开关上切换(窗口焦点是另一种提供很少视觉反馈的模态行为)。
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