我正在寻找一种重新映射键的方法,以将光标向下移动到下一行,跳过仅包含的任何行,\n而只在上一行下执行相同的操作。
本质上,我想做与{和}相反的动作。
这是DJ映射的替代方法,可与以下方法配合使用hlsearch:
跳到下一个非空行
nnoremap <key> :<C-u>call search('^.\+')<CR>
Run Code Online (Sandbox Code Playgroud)跳到上一个非空行
nnoremap <otherkey> :<C-u>call search('^.\+', 'b')<CR>
Run Code Online (Sandbox Code Playgroud)将可视选择范围扩展到下一个非空行
xnoremap <key> :<C-u>k`\|call search('^.\+')\|normal! <C-r>=visualmode()<CR>``o<CR>
Run Code Online (Sandbox Code Playgroud)将视觉选择扩展到先前的非空行
xnoremap <otherkey> :<C-u>k`\|call search('^.\+', 'b')\|normal! <C-r>=visualmode()<CR>``o<CR>
Run Code Online (Sandbox Code Playgroud)操作到下一个非空行
omap <key> :<C-u>normal! v<key><CR>
Run Code Online (Sandbox Code Playgroud)对先前的非空行进行操作
omap <otherkey> :<C-u>normal! v<otherkey><CR>
Run Code Online (Sandbox Code Playgroud)说明…
与hlsearch启用,/anything将突出每场比赛。由于我们不是在积极寻找非空行,而是移动它们,因此所产生的突出显示毫无意义。
通过使用 :help search(),我们绕过了hlsearch,因此使映射少了很多噪音。
<C-u> 用于在调用我们的函数之前删除任何意外范围。
可视模式映射的工作方式如下:
:help :k,:help :normal::help i_ctrl-r,:help "=和:help visualmode(),:help '',:help v_o。操作员挂起的映射仅重用可视模式映射。