Vim分割线命令

时间:2009-03-09 02:32:55

标签: vim

  

可能重复:
  How do I insert a linebreak where the cursor is without entering into insert mode in Vim?

在vim中, J 将下一行连接到当前行。是否有类似的一键(或相对较短)命令在给定的光标位置分割一条线?我知道它可以用一个简单的宏来完成,但似乎如果 J 命令存在,那么应该有一个类似的函数。我试过搜索它,但似乎找不到答案。

7 个答案:

答案 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