Vim split line命令

可能重复:
如何在Vim中插入一个没有进入插入模式的换行符?

在vim中, Jjoin下一行到当前行。 是否有类似的一键(或相对较短)的命令来分割一个给定的光标位置的行? 我知道这是用一个简单的macros来完成的,但是如果J- command存在的话,应该有一个类似的function。 我试过寻找它,但似乎无法find答案。

我不认为这是一个关键的命令。 你可以做的最好的股票VIM可能是 input Esc

回车,而空白将做到这一点。 这是两个按键。

我的解决scheme是重新映射K键,因为我从来没有使用默认的操作(查找光标下的单词“man”),我以前的编辑器分别使用Alt + j和Alt + k连接和分割线。

 :nnoremap K i<CR><Esc> 

这三个恼人的按键滚动成一个。

也许还有更复杂的方法来消除任何尾随的空白,但是我更喜欢在写入时去除所有尾随的空白。

不,我现在读了足够的答案,得出结论说没有这样的命令。

简单的答案:在插入时按下“Enter”将会执行; 但是你是对的,在命令模式下应该有一个关键。 我也想知道。

由于每个人都有一个最喜欢的解决方法,我会分享我的。 假设是我会做任何事情,以避免必须达到Esc键。

ylprX …其中“X”是插入的字符,甚至可以是换行符

所以,'yl'在char上被抽出,'p'=粘贴char,'r'被replacechar, 那么你只需input新的字符。 这就是我讨厌使用Escape的原因。

(这是'l',如在“向右移动”,BTW)

旧的线程,但我不使用“K”的手册页查找或任何魔法。 所以我在.vimrc中有这个映射:

 map K i<Enter><Esc> 

我想因为“J”是join,“K”可以是krack什么的。 🙂

如果可以为位置创build正则expression式来添加拆分,则可以拆分行。 例如,如果你想分割每个分号的行,你可以使用下面的replace:

%S /; / ^ V ^ M / G

效果很好

杰德的答案是最有用的。 我想补充一点,我需要“control-V-alternative”,即control-Q:%s /; / ^ q ^ m / g