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

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

在 Vim 中,该J键将两行连接在一起。是否有类似的内置组合键可以用换行符(在光标位置或类似位置)分割行?

或者,定义组合键来执行此操作的最可靠方法是什么(在正常模式下,而不是插入模式下)?

答案1

不,没有内置命令。

当我想在 a 上分割时<Space>,我会这样做r<CR>

- - 编辑 - -

@keith-nicholas 的评论让我想起了这个问题。同时我想到了一个希望“通用”的方法:

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

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

答案2

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

答案3

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

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

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

:set textwidth=<n>

其中 n=您希望一行中的字符数,例如 10,完成后更改回正常宽度。

从 Kholidfu 的 YouTube 视频中获得此信息,该视频展示了如何在正常模式下使用动作连接和分割线条:Vim 教程 - 连接和分割行

答案4

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

:map z i<CTRL+m>

相关内容