在 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>