是否有命令在Vim中分割行?


Answers:


16

不,没有内置命令。

当我想分割a时<Space>,我会做r<CR>

-编辑-

@ keith-nicholas的评论让我想起了这个问题。FWIW在此期间,我想出了一种“通用”方法:

function! BreakHere()
    s/^\(\s*\)\(.\{-}\)\(\s*\)\(\%#\)\(\s*\)\(.*\)/\1\2\r\1\4\6
    call histdel("/", -1)
endfunction

nnoremap <key> :<C-u>call BreakHere()<CR>

4
使用r<CR>非常聪明!谢谢!
Marcelo

1
那很棒!超级烦人的插入行插入
Keith Nicholas

我发现s<CR>缩进,而r<CR>没有缩进。
toxefa

5

a Enter Esc在光标右侧拆分,或i Enter Esc在左侧拆分。


1
这就对了。只需插入一个换行符。或者:使用r + <return>用换行符替换光标下的字符。最好有一个字母命令,但是据我所知没有。
Tonny 2013年

2

我发现在Vim中分割行的最简单方法是普通模式命令gq(在普通模式或可视模式下快速连续键入两个字母):

  • 在可视模式下,它将拆分所选内容。
  • 在正常模式下,您将跟随gq动作。

例如,gql将一条线拆分为当前设置的宽度。要将分割线的宽度设置为与当前设置不同,可以使用

:set textwidth=<n>

其中n =一行中想要的字符数,例如10,完成后变回正常宽度。

从Kholidfu的Youtube视频中获得了此信息,该视频演示了如何使用动作在普通模式下接合和分割线:Vim教程-接合和分割线。


1

您可以使用地图定义自己的地图。要将z定义为命令,例如:

:map z i<CTRL+m>

0

您可以记录一个宏:

在正常模式下,键入“ q +”开始记录。按“ i”,您要记录的宏。然后再次按“ q”停止录音。

要使用宏,请进入正常模式并键入“ @ + letter”。

在我的情况下,我使用“ b”使用此宏:在普通模式“ qbiq”中记录类型在普通模式“ @b”中使用类型

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.