繁体   English   中英

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

[英]What are ways to reduce mode errors while learning vim?

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

在插入模式下,我使用这些autocmd来突出显示包含光标的整行,而不是在正常模式下:

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

这提供了关于模式的更多视觉反馈。

如果尚未执行此操作,则可以使用:set showmode显示当前模式:set showmode 在插入模式下,状态栏中会显示-- INSERT --

尽量记住始终将vim置于正常模式。

切换“Esc”和“Caps Lock”键。

如果您不小心点击“大写锁定”,您将开始输入与您喜欢的操作无关的命令。 如果您是一位经验丰富的用户,这很烦人; 如果你是初学者,那么理解出了什么问题可能会很麻烦。

每当你需要按Esc键时,你必须移动整个手,让你的小手指触摸Esc键,然后再次更换整个手。 一些Vim用户会告诉你,过了一段时间你就习惯了这样做,这不是什么大问题。 我认为这个论点不足,因为你几乎可以习惯在任何地方映射任何键。 这是一个效率问题。

我相信“Esc”经常被使用,如果它被使用,很少使用“Caps Lock”。

因此,切换两者是有意义的,因为它可以防止错误并提高打字速度。

使用gvim,当在模式之间移动时,光标从块变为垂直条。 这至少给你一点视觉反馈。

插入模式应该只是临时的。 正如其名称所示,正常模式是编辑任务的最爱模式。

通常,您应该在正常模式下花费更多时间,并在插入内容时始终按ESC。

也许我只为自己说话,但现在我习惯于假设我一直处于正常模式,而且我几乎从不错。

这是我对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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM