在vim的插入模式下,在当前行后添加新行

6
我刚开始使用Vim,从Sublime转换到Vim真的很难。我想知道是否有快捷键在插入模式下添加新行而不离开它,在Sublime中我使用cmd + Enter和cmd + Shift + Enter来完成,但我没有找到类似的方法在Vim中实现。
我已经发现了使用'o'和'O'在普通模式下实现此功能,并且配置了这种令人惊叹的方式http://vim.wikia.com/wiki/Insert_newline_without_entering_insert_mode,但它们都不能满足我的需求。
谢谢!
1个回答

5

定义一个快捷键来添加下一行很容易,只需在Vim命令行中输入以下内容(在正常模式下输入:后)或将其添加到vimrc文件中:

imap <C-Enter> <Esc>o

那会添加一个插入模式映射 (imap),这样Ctrl-Enter就能离开插入模式,然后使用o在当前行之后添加一个新行(让你回到你开始的插入模式)。(<C-xxx>是Vim表示特殊键序列Ctrl+xxx的方式,而<Esc>则表示Escape键)。
这与您链接的“神奇方法”非常相似,只是使用适当的键序列从插入模式转换为正常模式,然后添加行。在Vim中创建快捷方式的方法是从较小的部分构建它们。如果您了解Oo,则只需创建一个映射进入正常模式,然后使用它们即可。
从这里开始,应该很容易知道如何进行其他映射:
imap <C-S-Enter> <Esc>O

(<C-S-xxx>表示Ctrl+Shift+xxx)

这些映射在gvim GUI中运行良好,但可能无法在基于终端的vim中工作,因为键序列可能无法正确传递从终端到vim。如有必要,请使用其他映射,例如Ctrl+o


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接