Mar*_*osi 76 vim performance text-editor
是否可以在不进入插入模式的情况下在光标处于Vim的位置插入换行符?这是一个例子([x]
意味着光标打开x
):
if (some_condition) {[ ]return; }
Run Code Online (Sandbox Code Playgroud)
偶尔,我可能想要输入更多代码.所以我按下i进入插入模式,按下Enter以插入换行符,然后删除额外的空格.接下来,我进入正常模式并将光标定位在右大括号之前,然后执行相同的操作以将其放在自己的行上.
我已经这样做了一段时间,但肯定有更好的方法吗?
Gre*_*ill 98
对于您给出的示例,您可以使用rEnterEnter替换单个字符(空格).然后,fspace.前进到下一个空格并重复最后一个命令.
根据您的自动注册设置,上述内容可能会或可能不会正确缩进返回语句.如果没有,则sEnterTabEsc改为使用换行符替换空格,缩进行,退出插入模式.您必须使用其他命令替换第二个空格,以便不能使用"." 在这种情况下.
Ada*_*iss 11
以下是在没有插入模式时按"g"时创建一个在光标处插入换行符的宏:
从vim中输入:
:map g i[Ctrl+V][Enter][Ctrl+V][Esc][Enter]
Run Code Online (Sandbox Code Playgroud)
哪里:
您将在vim窗口底部看到以下内容,直到您按下最后一个Enter:
:map g i^M^[
Run Code Online (Sandbox Code Playgroud)
说明:
[Ctrl + V]表示"引用以下字符" - 它允许您在命令中嵌入换行符和转义字符.
所以你要将'g'键映射到序列:
i [Enter] [Escape]
这是vim用于在光标之前插入换行符,然后退出插入模式.
调整:
f}i^M^[O
-这将˚F IND的}和我 nsert另一个新行,然后在插入模式和逃生Ø笔的空行,让您输入更多的代码.请享用!
小智 10
按Ctrl + Enter键可以在光标处打破行的简单映射:
:nmap <c-cr> i<cr><Esc>
基本上进入'插入'模式,插入换行符并返回正常模式.
将它放在.vimrc文件中以备将来使用.
如果您通常将一行扩展为三行,请尝试替换。将左括号更改为括号/返回,将右括号更改为返回/括号。
用括号替换括号/返回括号的命令如下所示:
:s/{/{\r/
Run Code Online (Sandbox Code Playgroud)
由于您想经常使用它,您可以将完整序列映射到未使用的按键,如下所示:
:map <F7> :s/{/{\r/ ^M :s/}/\r}/ ^M
Run Code Online (Sandbox Code Playgroud)
在序列中看到^M的位置,键入[Ctrl-V],然后按enter。
现在,将光标置于样本行的任意位置,按下映射键,即可添加回车符。
检查:help map-which-keys
有关选择未使用的击键进行映射的建议。