是否可以在不进入插入模式的情况下在光标处于Vim的位置插入换行符?这是一个例子([x]
意味着光标打开x
):
if (some_condition) {[ ]return; }
偶尔,我可能想要输入更多代码.所以我按下i进入插入模式,按下Enter以插入换行符,然后删除额外的空格.接下来,我进入正常模式并将光标定位在右大括号之前,然后执行相同的操作以将其放在自己的行上.
我已经这样做了一段时间,但肯定有更好的方法吗?
对于您给出的示例,您可以使用rEnterEnter替换单个字符(空格).然后,fspace.前进到下一个空格并重复最后一个命令.
根据您的自动注册设置,上述内容可能会或可能不会正确缩进返回语句.如果没有,则sEnterTabEsc改为使用换行符替换空格,缩进行,退出插入模式.您必须使用其他命令替换第二个空格,以便不能使用"." 在这种情况下.
以下是在没有插入模式时按"g"时创建一个在光标处插入换行符的宏:
从vim中输入:
:map g i[Ctrl+V][Enter][Ctrl+V][Esc][Enter]
哪里:
[Ctrl + V]表示按住Ctrl键并按'v'
[Enter]表示按Enter键
[Esc]表示按下Esc键
您将在vim窗口底部看到以下内容,直到您按下最后一个Enter:
:map g i^M^[
说明:
[Ctrl + V]表示"引用以下字符" - 它允许您在命令中嵌入换行符和转义字符.
所以你要将'g'键映射到序列:
i [Enter] [Escape]
这是vim用于在光标之前插入换行符,然后退出插入模式.
调整:
您可以将'g'替换为尚未链接到您使用的命令的任何字符.
更添加到命令,例如 f}i^M^[O
-这将˚F IND的}和我 nsert另一个新行,然后在插入模式和逃生Ø笔的空行,让您输入更多的代码.
您可以将命令添加到.vimrc或.exrc文件中以使其永久化.只是从头开始省略冒号,所以命令以"map"开头
请享用!
按Ctrl + Enter键可以在光标处打破行的简单映射:
:nmap
i
基本上进入'插入'模式,插入换行符并返回正常模式.
将它放在.vimrc文件中以备将来使用.