Vim如何实现全场景下准确跳转至段落首尾行的操作?
Vim 段落首行/末行直接跳转方案
原生Vim没有内置直接跳转至段落可视首行/末行的默认映射,你提到的{、}的行为差异是原生设计逻辑导致的:
{和}属于排他性跳转命令,若段落前后存在空行,它们会跳转至段落前/后的空行位置;仅当段落位于缓冲区顶部或底部时,才会直接跳转至段落实际的首行或末行。- 这种行为差异很难通过简单的原生命令组合适配,比如
{w命令在段落前有空行时可以跳转到段落开头,但对文件中的首个段落会出现错误跳转。
你可以通过以下自定义映射实现全场景稳定的段落首行、末行跳转,直接将对应配置添加到你的.vimrc(或Neovim对应配置段)即可生效:
跳转至段落首行
跳转到段落首行第一个非空字符
nnoremap <silent> [p :<c-u>execute 'normal! {w'<cr>
跳转到段落首行的行首位置
nnoremap <silent> [P :<c-u>execute 'normal! {j0'<cr>
跳转至段落末行
跳转到段落末行的行尾位置
nnoremap <silent> ]p :<c-u>execute 'normal! }k$'<cr>
跳转到段落末行第一个非空字符
nnoremap <silent> ]P :<c-u>execute 'normal! }k^'<cr>
内容的提问来源于stack exchange,提问作者jimav
相关产品推荐
相关产品推荐

