学习vim时有哪些方法可以减少模式错误?

时间:2010-10-11 19:33:36

标签: vim text-editor modal-dialog

我在使用vim时经常会出现模式错误,即我会在正常模式下开始输入文本,或者在插入模式下开始键入命令。我知道随着时间的推移,随着时间的推移vim的怪癖渗入你的骨头,但有没有办法加速这个过程?

7 个答案:

答案 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