我想在不离开正常模式(进入插入或命令行模式)的情况下将一行(在光标位置)分成两行。这可能吗?
我目前到达我想要的位置并点击'i'进入插入模式,'enter'将行分成两部分,然后'esc'返回正常模式。
我不想设置最大行长或做任何语法或类似的事情。我只想在不离开正常模式的情况下将一行分成两行。'J' 将光标所在的行连接到它下面的行,这很方便。我想要相反的——用一个命令把一行分成两行。
试试这个:
:nnoremap <NL> i<CR><ESC>
然后只要你想分割一行就按Ctrl-J。
我不知道单个键命令,但很多时候我先按“r”然后按“Enter”来换行。
"r" 替换光标下的当前字符而不进入插入模式。如果您不想替换字符,这可能不是您想要的...
将光标放在适当的位置并...
r<Enter>
与其他答案类似,但不替换当前字符。
R<enter>
无需重新映射。
据我所知,如果不进入插入模式,这是不可能的。但是,您可以使用类似的宏(将 Z 替换为您要使用的任何键)
nmap Z i<cr><esc>k$
基本上这映射键'Z'进入插入模式'i',插入回车' <cr>
',离开插入模式' <esc>
',上一行'k',最后到行尾'$'
根据这个重复的问题:如何在不进入 Vim 插入模式的情况下在光标所在的位置插入换行符?
在 vim 中,输入:
:map g i[Ctrl+V][Enter][Ctrl+V][Esc][Enter]
这会将 G 键映射到宏 I [Enter] [Escape]
您可以使用录音。
qa
以开始录制到寄存器a
中(如果需要,您可以使用其他寄存器a
。)i
(切换到插入模式),Return(插入换行符),escape(退出插入模式),q
(结束录制。)现在您可以通过键入@a
(a
开始录制时使用的寄存器号在哪里)来调用此键序列,只需将光标移动到要插入换行符的位置并键入@a
。
在正常模式下,按字符“O”,然后按“Esc”。不需要映射。