gpt4 book ai didi

Vim:重新映射键以移至下一个非空白行(反之亦然)

转载 作者:行者123 更新时间:2023-12-04 18:02:55 25 4
gpt4 key购买 nike

我正在寻找一种重新映射键的方法,以将光标向下移动到下一行,跳过仅包含\n的任何行,而只在上一行下执行相同的操作。

本质上,我想做与{和}相反的 Action 。

最佳答案

这是DJ映射的替代方法,可与hlsearch配合使用:

  • 跳至下一个非空行
    nnoremap <key> :<C-u>call search('^.\+')<CR>
  • 跳至上一个非空行
    nnoremap <otherkey> :<C-u>call search('^.\+', 'b')<CR>
  • 将可视选择范围扩展到下一个非空行
    xnoremap <key> :<C-u>k`\|call search('^.\+')\|normal! <C-r>=visualmode()<CR>``o<CR>
  • 将视觉选择范围扩展到先前的非空行
    xnoremap <otherkey> :<C-u>k`\|call search('^.\+', 'b')\|normal! <C-r>=visualmode()<CR>``o<CR>
  • 操作到下一个非空行
    omap <key> :<C-u>normal! v<key><CR>
  • 操作到先前的非空行
    omap <otherkey> :<C-u>normal! v<otherkey><CR>

  • 说明...

    启用 hlsearch后, /anything将突出显示每个匹配项。由于我们不是在积极地寻找非空行,而只是在移动它们,因此所产生的突出显示毫无意义。

    通过使用 :help search(),我们绕过了 hlsearch,从而使映射少了很多噪音。
    <C-u>用于在调用我们的函数之前删除任何意外范围。

    可视模式映射的工作方式如下:
  • 我们使用:help :k
  • 定义“上一个标记”
  • 我们执行搜索
  • 我们使用:help :normal
  • 运行以下普通模式命令
  • 我们使用:help i_ctrl-r:help "=:help visualmode()
  • 检索以前的可视模式
  • 我们通过:help ''
  • 将视觉选择扩展到“上一个标记”的位置
  • ,最后我们使用:help v_o将光标移动到视觉选择的另一端。

  • 运算符(operator)挂起的映射仅重用可视模式映射。

    关于Vim:重新映射键以移至下一个非空白行(反之亦然),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40498194/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com