我想在不离开正常模式(进入插入或命令行模式)的情况下将行(在光标位置处)分为两行。这可能吗?如何在正常模式下打破vim中的一行?
我目前到达我想要的位置,并点击'我'进入插入模式,'输入'将两行中断,然后'esc'返回到正常模式。
我不想设置最大行长度或做任何语法或类似的东西。我只想在不离开正常模式的情况下将一行分成两行。 'J'加入光标所在的行到它下面的行,这很方便。我想要的是相反的 - 用一条命令将一条线分成两条。
我想在不离开正常模式(进入插入或命令行模式)的情况下将行(在光标位置处)分为两行。这可能吗?如何在正常模式下打破vim中的一行?
我目前到达我想要的位置,并点击'我'进入插入模式,'输入'将两行中断,然后'esc'返回到正常模式。
我不想设置最大行长度或做任何语法或类似的东西。我只想在不离开正常模式的情况下将一行分成两行。 'J'加入光标所在的行到它下面的行,这很方便。我想要的是相反的 - 用一条命令将一条线分成两条。
试试这个:
:nnoremap <NL> i<CR><ESC>
然后只要按下Ctrl-J,每当你想分割线。
据我所知,这是不可能的,没有进入插入模式。但是,您可以用类似的宏它(用您想使用的任何键Z)
nmap Z i<cr><esc>k$
基本上这个映射的关键“Z”进入插入模式的“我”,插入一个回车“<cr>
”,离开插入模式“<esc>
”,走了一条线“K”,最后去行“$”
每这种重复的问题结束:How do I insert a linebreak where the cursor is without entering into insert mode in Vim?
从VIM内,类型:
:map g i[Ctrl+V][Enter][Ctrl+V][Esc][Enter]
这G键映射到宏我[进入] [逃生]
到其他的答案相似,但不会取代当前字符。
R<enter>
没有重新映射必需的。
关闭,但将用户置于插入模式,他想以正常模式结束。 – Symmitchry 2014-07-08 22:33:55
您可以使用录制。将光标放在要插入换行符的地方。键入qa
开始记录在寄存器a
(你可以用比a
以外的其他寄存器,如果你想,然后输入i
(切换到插入模式),返回(插入新行),逃生(退出插入模式),q
(结束录音。)现在,您可以通过输入@a
(其中a
是您在开始录音时使用的注册号码来调用此序列的序列,因此只需将光标移动到要插入换行符的位置并输入@a
即可。
这正是我所希望的。我觉得奇怪的是,这不是vim中的内置命令,但是我将该行添加到了我的.vimrc文件中,并且很高兴地沿着它走。 – Ted 2010-10-18 17:44:32
谢谢,我很欣赏发现一个我从来不知道我需要的功能,直到现在... ;-) – 2010-10-18 17:45:48
我认为最好使用':noremap'而不是':map',并且使用':'更好: nnoremap'在这种情况下的问题状态*正常模式*。 – Benoit 2010-10-18 18:35:39