我喜欢在不进入插入模式的情况下插入空白行,我使用了这个键映射:
nomap go o <esc>
这确实会创建空白行,但会引入一些奇怪的行为。我有智能缩进和自动缩进设置。新行跟随缩进,但不会删除它们,即使手动这样做会自动删除多余的空格。它还会在每次光标所在的位置添加一个空格。
有人对解释这种行为有任何见解吗?
我喜欢在不进入插入模式的情况下插入空白行,我使用了这个键映射:
nomap go o <esc>
这确实会创建空白行,但会引入一些奇怪的行为。我有智能缩进和自动缩进设置。新行跟随缩进,但不会删除它们,即使手动这样做会自动删除多余的空格。它还会在每次光标所在的位置添加一个空格。
有人对解释这种行为有任何见解吗?
Vim非常符合您编写映射命令的方式 - 它实际上是在处理映射中的空间之前处理<ESC>
. 换句话说,您的映射会这样做:
nnoremap go o<SPACE><ESC>
您应该将其更改为:
nnoremap go o<ESC>
并确保映射中没有任何多余的空格!
我同意“太多的php”。这是我的 .vimrc 中的相关部分
nnoremap <A-o> o<ESC>k
nnoremap <A-O> O<ESC>j
我认为它更快,因为您将光标返回到原始行(尽管不在原始字符上)。