可能重复:
How do I insert a linebreak where the cursor is without entering into insert mode in Vim?
在vim中, J 将下一行连接到当前行。是否有类似的一键(或相对较短)命令在给定的光标位置分割一条线?我知道它可以用一个简单的宏来完成,但似乎如果 J 命令存在,那么应该有一个类似的函数。我试过搜索它,但似乎找不到答案。
答案 0 :(得分:167)
r 输入,而在空格上会这样做。这是两次击键。
答案 1 :(得分:40)
我认为没有一个关键命令。使用stock vim可以做的最好的事情可能是 i 输入 Esc 。
答案 2 :(得分:36)
我的解决方案是重新映射K键,因为我从不使用默认操作(用“man”查找光标下的单词),而我之前的编辑器分别使用Alt + j和Alt + k来连接和分割线条
:nnoremap K i<CR><Esc>
这会将这三个烦人的击键合二为一。
可能还有一种更复杂的方法可以消除任何尾随空格,但我更喜欢在写入时删除所有尾随空格。
答案 3 :(得分:20)
没有。我现在已经阅读了足够的答案,得出的结论是没有这样的命令。
简单回答: 在插入时按“Enter”将执行此操作;但你是对的,在命令模式下应该有一把钥匙。我也想知道。
由于每个人都有最喜欢的解决方法,我会与我分享。假设我会做任何以避免触及Esc键。
ylprX ...其中'X'是插入的字符,甚至可以是换行符。
所以,'yl'在右边的char上猛拉,'p'=粘贴char,'r'代替char;然后你只需输入新的字符。 那是我讨厌使用Escape。
(那是'l',如“向右移动”,BTW)
答案 4 :(得分:8)
旧线程,但我不使用“K”进行手册页查找或其执行的任何魔术。所以我在.vimrc中有这个映射:
map K i<Enter><Esc>
我认为既然“J”是加入,“K”可以是krack或其他东西。 :)
答案 5 :(得分:6)
如果可以为要添加拆分的位置创建正则表达式,则可以拆分行。例如,如果要分割每个分号的行,可以使用以下替换:
%S /; / ^ V ^ M / G
效果很好
答案 6 :(得分:0)
杰德的回答是最有用的。我想补充一点,我需要“control-V-alternative”,即control-Q: %S /; / ^ Q ^ M / G